我最近决定将PHP合并到我的网站中,但之前我从未使用过它,所以我不熟悉这些功能......
我的问题是我在每个PHP页面上使用include()方法作为我的页眉和页脚,如下所示:
<?php include('../php/header.php'); ?>
这会从/ public_html目录导航到我网站根目录中的/ php目录。为了考虑文件可能位于的不同子目录级别,我在每个PHP页面的顶部添加:
<?php
/* Path prefix so relative links work correctly */
$path = "../";
?>
和../可以用../../替换为另一个子目录向下等文件,在页眉和页脚文件中,链接的开头如下:
<a href="<?php echo($path); ?>index.php" title="Home">Home</a>
并且一切正常如此......直到我尝试将它与wordpress一起使用,它位于我网站的子目录中。 Wordpress使用动态页面,因此有时页面位于低于其他页面的子目录中,并且链接将无法使用此方法。在我的旧网站设计中,我使用标记设置所有链接引用到我的网站的root / public_html目录。但是,PHP不受此标记的影响。我需要的是一种在博客上为我的include()方法设置/ public_html目录的链接引用的方法。
是否有这样的方法或有更好的方法来做我正在做的事情?
答案 0 :(得分:5)
假设您的配置文件位于/system/config.php
。在config.php中添加...
define( 'DIR_BASE', dirname( dirname( __FILE__ ) ) );
define( 'DIR_INCLUDES', DIR_BASE . 'includes/' );
现在只要你的config.php文件没有移动,你的基本目录将始终是它下面的2个目录。您可以在包含config.php。
的所有文件中使用这些文件require( DIR_INCLUDES . 'header.php' );
现在您不必担心自己在网站中的位置。
答案 1 :(得分:1)
您可以查看$ _SERVER ['DOCUMENT_ROOT']。它将返回文档根目录,如服务器配置文件中所定义。
答案 2 :(得分:0)
你能进入Wordpress管理部门吗?
您不需要将任何文件包含到Wordpress中。它有点独立。或许我误解了这个问题。
就像上面提到的那样,你可以指定$ _SERVER ['DOCUMENT_ROOT']作为你的根,然后建立url。
EG:
<?php
echo '<a href="'.$_SERVER['DOCUMENT_ROOT'].'/subfolder/subfolder/file.php">Link To page</a>';
?>
这有帮助还是你还有问题?
答案 3 :(得分:0)
您最好的选择是使用$ _SERVER ['SERVER_NAME']或$ _SERVER ['DOCUMENT_ROOT'],具体取决于哪一个更适合您的目录遍历需求(文档根目录将允许您比根目录更深入,如果你在你的网络根目录下保留你的包含目录,那将会很有帮助。
虽然不清楚如何弄乱Wordpress,但WP有自己的设置来确定根(在wp_options表中设置)。