Php 如何获取wp include目录?
我需要为我的wp插件开发做一次require_。在我看来,我需要使用绝对路径 我目前的解决办法是Php 如何获取wp include目录?,php,wordpress,Php,Wordpress,我需要为我的wp插件开发做一次require_。在我看来,我需要使用绝对路径 我目前的解决办法是 $delimiter = strpos(dirname(__FILE__), "/")!==false?"/":"\\"; //win or unix? $path = explode($delimiter, dirname(__FILE__)); require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-a
$delimiter = strpos(dirname(__FILE__), "/")!==false?"/":"\\"; //win or unix?
$path = explode($delimiter, dirname(__FILE__));
require_once join(array_slice($path,0,count($path)-3),$delimiter) . "/wp-admin/includes/plugin.php";
我想知道是否有更好的方法来处理这种通用方法。
如果wp插件目录结构发生变化怎么办。因此此部分count($path)-3将不再有效….请尝试:
require_once realpath(__DIR__.'/../../..').'/wp-admin/includes/plugin.php';
或者,如果您使用的是\uuuuuu DIR\uuuuu
替换为dirname(\uuuuu FILE\uuuuu)
或者你可以试试:
require_once ABSPATH . WPINC . '/plugin.php';
您是否尝试过使用bloginfo('wpurl')/wp content/plugins?可以利用wp\u content\u DIR并创建一个很好的常量
define(WP_INCLUDE_DIR, preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));
还是一个函数
function wp_include_dir(){
$wp_include_dir = preg_replace('/wp-content$/', 'wp-includes', WP_CONTENT_DIR));
return $wp_include_dir;
}
WordPress在启动时建立includes目录的路径
需要一次路径。WPINC/你的文件是.php'代码>我曾经把它定义为一个常数,就像其他的一样
if(defined('WP_CONTENT_DIR') && !defined('WP_INCLUDE_DIR')){
define('WP_INCLUDE_DIR', str_replace('wp-content', 'wp-includes', WP_CONTENT_DIR));
}
仍然可以使用is_dir()
进行检查,如果需要,还可以进一步遍历。/../../../。。或者count($path)-3也差不多。我认为可能有更好的解决方案,使用一些wordpress函数返回路径…我不知道WP是如何工作的,但事实上,标准是当您首先将应用程序加载到应用程序的根路径时设置一个常量,然后在其他任何地方使用该常量。我的观点是/wp admin/includes/plugin.php
是wordpress include path。您的建议是如何处理插件开发。我的问题是如何独立于wordpress文件结构的变化。也许我不能:-)是的,我在调查这件事。它不会提供指向wp admin/includes
的路径。wp-includes
中也有includes,所以有点混乱。我在这里的想法是如何独立于wordpress文件结构的变化。+1用于了解ABSPATH。不幸的是,它没有始终如一地使用它,并且在链接时通常使用相对或绝对路径。如果要更改目录名以确保安全性,这是一个很大的难题。此wp include dir位于仪表板上的何处?我试图找到header.php文件并读取它将位于此目录中。