如何在自定义.php文件中包含WordPress功能?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在自定义.php文件中包含WordPress功能?相关的知识,希望对你有一定的参考价值。
如何在自定义.php文件中包含WordPress功能?
详细说明:我的主题(构造函数)下有一个名为reports的目录。它们包含.php文件,这些文件使用DOMPDF从站点的数据生成报告以供下载。对于这些我想使用WordPress引擎提供的功能,例如get_the_author_meta( 'user_firstname', $user_id )
。如果我使用这些我得到(自然)以下错误:
致命错误:在第15行的ROOT / public_html / wp-content / themes / constructor / reports / testreport.php中调用未定义的函数get_the_author_meta()
我一直认为我需要包含wp-blog-header.php。我用require_once("../../../../wp-blog-header.php");
。有了这个,我得到以下404错误:
找不到网址的网页:ROOT / wp-content / themes / constructor / reports / testreport.php
(要求指向正确的路径。如果我操作它,我得到警告:require_once(../../../ wp-blog-header.php):无法打开流...所以路径必须是对的。)
有什么我忽略的吗?为什么我不能包含这个wp文件?包含wp函数的正确方法是什么?
谢谢你的帮助,Sziro
你走在正确的轨道上。试试这个:
require_once("../../../../wp-load.php");
如果WordPress是文档根,那么没有点的东西就更专业:
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
好吧,如果有人安装了较新的PHP版本(ver> = 5.5.x),那么他们也可以在WordPress网站目录本身的根脚本中尝试以下代码:
<?php
define("WP_ROOT", __DIR__);
define("DS", DIRECTORY_SEPARATOR);
require_once WP_ROOT . DS . "wp-load.php";
要么
<?php
define("WP_ROOT", __DIR__);
define("DS", DIRECTORY_SEPARATOR);
require_once WP_ROOT . DS . "wp-blog-header.php";
我想这是一个更直接,更干净的方法,并不涉及手动添加斜线和更改由..
的diretories。
希望这有助于某人。
require_once(dirname(__FILE__) . '/options.php');
这是在WordPress中包含文件的更好方法。
外部文件可以轻松访问WordPress功能。您只需要在外部文件中包含文件wp-load.php
。 wp-load.php
文件位于WordPress安装的根目录中。示例:假设您的文件是位于WordPress安装的根目录下的test.php
。
<?php
require_once('wp-load.php');
// Your custom code
?>
资料来源:How to access WordPress functions in external file
以上是关于如何在自定义.php文件中包含WordPress功能?的主要内容,如果未能解决你的问题,请参考以下文章
PHP Wordpress作者页面在配置文件中包含自定义字段
PHP 在functions.php中的WordPress中包含和注册Javascript文件