无法将WP函数加载到外部函数

时间:2017-06-29 作者:adrian

我创建了一个书店网站,在首页上有页眉功能、页脚功能和登录菜单。

所有函数都在中声明functions.php 并与挂钩相连。

我的首页运行正常。

但我尝试从我的登录菜单选项之一调用注册菜单文件(文件page-non-member.php) 并使用首页的页眉作为此页的页眉。

我尝试使用以下方法:

require( dirname( __FILE__ ) . \'../wp-load.php\' );
if ( function_exists( \'get_template_part\' ) ) {
    echo "get_template_part found";
}
get_template_part( \'mybookshop\', \'header\' );  
或者:

do_action( \'create_header_html\', \'Make registration\' );
但在这两种情况下,我都得到了下一个信息

警告:require(W:\\domains\\wpfolder\\wp content\\themes\\mybookshop../wp-load.php):未能打开流:W:\\domains\\wpfolder\\wp content\\themes\\mybookshop\\page not member中没有此类文件或目录。php在线4

致命错误:require():无法打开所需的“W:\\domains\\wpfolder\\wp-content\\themes\\mybookshop/wp负载。php“(include\\u path=\';w:/modules/php/php-5.6;w:/modules/php/php-5.6/PEAR/PEAR”)位于w:\\domains\\wpfolder\\wp content\\themes\\mybookshop\\page非成员。php第4行”。

Structure of my folders:
-- WordPress root directory
 |-- file wp-load.php
 |
 ....
 |
 -- my site(bookshop) root directory
 |-- header.php,header.php, page-home-page.php, page-not-member.php, etc
 |
  ....
我使用本地服务器(OpenServer)。问题是什么?如何解决?

1 个回复
SO网友:Johansson

首先,不要那样做。根本不建议在一些外部PHP文件中包含WordPress的引擎。它的缺点比好处多。

如果你想访问WordPress的函数,可以在主题文件夹中创建你的PHP文件,或者创建一个插件。如果确实需要通过URL直接访问某些数据,甚至可以创建AJAX请求。

现在,关于你的错误。看起来你想包括wp-load.php 来自主题的一个文件。如果是这样,那就没有必要了。主题文件已经可以访问WordPress的功能。只需移除require... 你会没事的。

比如说,由于一些未知的原因,他们没有,你必须包括wp-load.php. 此文件存在于安装的根文件夹中,您必须返回3次才能包含它。所以看起来是这样的:

../../../wp-load.php
再一次,请不要这样做。这不是一个好的做法。

结束