0

我正在尝试用日历插件代替旧的事件存档页面。在archive.php我有以下代码:

<?php get_header();
$cat = get_query_var('cat');
$yourcat = get_category ($cat);
global $gateway_parent_id;


if ( $yourcat->slug == 'events' ){
include 'page-forum.php';
}else{

?>

当我将第 8 行更改为时 include 'http://www.mysite.com/events/'; ,出现以下错误:

Warning: include() [function.include]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /data/23/2/34/80/21912080/user/2412808/htdocs/wp-content/themes/ga/archive.php on line 8

Warning: include(http://www.mysite.com/events/) [function.include]: failed to open stream: no suitable wrapper could be found in /data/23/2/34/80/21912080/user/2412808/htdocs/wp-content/themes/ga/archive.php on line 8

Warning: include() [function.include]: Failed opening 'http://www.mysite.com/events/' for inclusion (include_path='.:/usr/services/vux/lib/php') in /data/23/2/34/80/21912080/user/2412080/htdocs/wp-content/themes/ga/archive.php on line 8

我究竟做错了什么?

4

3 回答 3

1

我在 Wordpress 中找到了一个更好的解决方案 - 这适用于重定向到绝对 url 并避免使用 htaccess:

<?php
wp_redirect( $location, $status );
exit;
?>

$location 是指向的 url,$status 是 301(永久重定向)或 302(临时)

http://codex.wordpress.org/Function_Reference/wp_redirect

于 2013-07-08T20:53:31.923 回答
0

您正在尝试通过包含文件。在您的服务器的 PHP 配置中禁用的 url。您可以通过在 php.ini 中设置来解决此问题allow_url_fopen,或者更好地使用文件路径。

要通过文件路径包含文件,请使用相对于当前 php 文件的文件名的完整路径,并根据需要使用../向上目录。例如,如果我想包含/root/test/save.phpfrom/root/dir/working/go.php我会使用include ('../../test/save.php');或只是include('/root/test/save.php');.

于 2013-06-25T21:46:11.417 回答
0

include()及其亲属采用文件系统路径,而不是相对于文档根目录的 Web 路径。要获取父目录,请使用../

例如,如果您要包含的文件与 archive.php 位于不同的目录中,例如包含,您可以执行以下操作:

include('../includes/file.php');

如果以 / 开头,将使用绝对系统文件路径(换句话说:任何以斜杠开头的路径都是绝对路径)。例子:

include('/home/user/public_html/project/include/config.php'); 

我希望这回答了你的问题。

于 2013-06-25T22:04:50.590 回答