我正在使用一个现有的PHP web应用程序。它的站点结构类似于:
- public_html
- 包括
- header.php
- 样式.css
- 页脚.php
- 博客
- 包括
我已经在/blog中安装了Wordpress。我正在尝试使用外部PHP应用程序的动态元素创建Wordpress主题。
以下是/blog/wp-content/themes/custom-theme/index.php:的示例
<?php
include_once("../../../../include/header.php");
?>
主题没有复制标题代码。我尝试过相对路径的变化,以防万一,但没有成功。还有其他我没有考虑的因素吗?
如果WordPress在/blog中,则有一个名为ABSPATH
的方便常量,用于保存该文件夹的路径。因此:
$inc_dir = dirname(ABSPATH) . '/include'; # /path/to/public_html/include
include_once "$inc_dir/header.php";
或者直接:
include_once dirname(ABSPATH) . '/include/header.php';
不过,鉴于您已经使用了正确的相对路径,请确保在相关的地方包含该文件。如果你把它包含在html注释或类似的东西中,你会得到意想不到的结果。
我相信"file_get_contents"也可以在这种情况下工作。
如果外部php文件是另一个程序的一部分,那么它也很方便。
"file_get_contents"是一种php方法,它将整个文件加载到一个字符串中。
请参阅us3.php.net/file_get_contents在各种情况下方便的呼叫。我用它在Wordpress中嵌入了一个ASP菜单。请参阅stackoverflow线程,并在此处提供示例:如何在php文件中包含.asp菜单文件?(ASP站点中的Wordpress博客文件夹)