Php 函数。使用直接链接时包含错误
我正在尝试用一个日历插件替换一个旧的事件归档页面。在Php 函数。使用直接链接时包含错误,php,include,Php,Include,我正在尝试用一个日历插件替换一个旧的事件归档页面。在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{ ?> 我做错了什么?您试图通
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{
?>
我做错了什么?您试图通过包含文件。在服务器的PHP配置中禁用的url。您可以通过在php.ini中启用
allow\u url\u fopen
来解决此问题,或者最好使用文件路径
要通过文件路径包含文件,请使用相对于当前php文件的文件名的完整路径,并根据需要使用。/
向上移动目录。例如,如果我想从/root/dir/working/go.php
中包含/root/test/save.php
,我会使用include('../../test/save.php')
或只是包含('/root/test/save.php')代码>及其相关项采用文件系统路径,而不是相对于文档根的web路径。要获取父目录,请使用。/
例如,如果要包含的文件与archive.php位于不同的目录中,例如includes,则可以执行以下操作:
include('../includes/file.php');
如果以/开头,将使用绝对系统文件路径(换句话说:任何以斜杠开头的路径都将是绝对路径)。例如:
include('/home/user/public_html/project/include/config.php');
我希望这能回答您的问题。我在Wordpress中找到了一个更好的解决方案-它可以重定向到绝对url,并避免使用htaccess:
<?php
wp_redirect( $location, $status );
exit;
?>
$location是指向的url,$status为301(永久重定向)或302(临时)
警告非常清楚,allow\u url\u open已禁用,因此无法将url作为文件打开,因此无法将其包含在内。如果存档页面在您的网站上,为什么不进行文件包含?建议使用本地路径,而不是通过绝对URL加载您自己网站的包含文件。如果您想消除这些错误,可以在php.ini文件中启用allow_url_fopen,但存在许多安全问题,如果您使用的是共享主机,您可能无法做到这一点。当日历页位于与存档不同的目录中时,我是否可以使用相对路径。php?@Chris Bishop:当然。见我的答案。:-)如果页面只是events/而不是events.php呢?这取决于站点的结构。如果events/
是一个目录,那么您可以在该目录中包含index.php
文件,否则您需要确定events/
指向哪个文件。如果页面只是events/而不是events.php怎么办?
<?php
wp_redirect( $location, $status );
exit;
?>