我试图在我的Wordpress主题文件的根目录中包含一个PHP文件。
e.g localhost / mywordpresssite / wp-content / themes / mytheme / myfile.php
我试图通过位于footer.php
parts > shared
来调用它
e.g localhost / mywordpresssite / wp-content / themes / mytheme / parts / shared / footer.php
我可以确认,当访问浏览器中的完整网址时,文件会显示,因此它绝对是正确的路径。
我无法以多种不同的方式包含此文件:
<?php
$stylesheet_root = get_stylesheet_directory_uri();
include $stylesheet_root.'/myfile.php';
?>
这应该找到样式表URI然后找到该文件,但是我收到了这个错误:
找不到合适的包装
我理解这种情况发生的原因是它不安全且allow_url_include
默认关闭,所以最好的方法是什么?
这似乎是一种相当明智的方式,因为文件总是相对于彼此相对的两个目录。但这似乎什么都不做。它仍然在同一目录中查找文件:
<?php include '../../myfile.php'; ?>
然而,即使此处放置的URL已在浏览器中进行测试并成功加载了正确的文件,但此STILL仍无法正常工作。它不会将它加载到包含的文件中......
<?php include 'localhost/mywordpresssite/wp-content/themes/mytheme/twitter-feed.php'; ?>
给出错误:
警告:include(localhost / mywordpresssite / wp-content / themes / mytheme / twitter-feed.php):无法打开流:/ Applications / MAMP / htdocs / mywordpresssite / wp-content /中没有此类文件或目录第3行的主题/ mytheme / parts / shared / footer.php
我还能做什么?
答案 0 :(得分:5)
您正在尝试通过网址include
。你需要include
文件的路径(而不是uri):
<?php
$stylesheet_root = get_stylesheet_directory();
include( $stylesheet_root . '/myfile.php' );
?>
答案 1 :(得分:0)
好像你正在使用相对路径,即。你没有开始/
。该路径应类似于(unix / mac)/var/www/mywordpresssite/wp-content/themes/mytheme/twitter-feed.php
。
您可以使用include(__DIR__ . '/myfile.php');
,因此您的包含始终相对于您的脚本当前所在的目录。
由于某些原因,使用../../myfile.php
不适用于包含。
答案 2 :(得分:-2)
我把hello.php放在我的主题的根文件夹中(footer.php所在的位置),这对我来说在footer.php的末尾有效:
<?php include (TEMPLATEPATH . '/hello.php'); ?>
答案 3 :(得分:-5)
使用
<?php include 'get_template_directory_uri()/myfile.php'; ?>
而不是
<?php include '../../myfile.php'; ?>