当我在functions.php
中执行此代码时,我得到的路径是:
$upload_dir = wp_upload_dir();
echo $upload_dir['path'];
//Returns: /some/correct/path/
但我希望将此路径移动到位于uploads.php
的自定义脚本中,在那里我无法执行wp_upload_dir();
。我显然也不能include()
functions.php,因为它会执行位于那里的所有其他内容。
将$upload_dir
变量传递给uploads.php
有什么棘手的方法吗?
您只需要加载wp-load.php它将允许您访问所有wordpress函数,只需执行以下操作:
<?php
require( '../wordpress_install_root/wp-load.php' );
$upload_dir = wp_upload_dir();
echo $upload_dir['path'];
?>
这是一个简单的方法。
只需在外部php文件的顶部包含以下内容:
$wp_url = str_replace('wp-content/plugins/YOUR_PLUGIN_NAME/includes', "", dirname(__FILE__));
include_once($wp_url . 'wp-load.php');
很明显,将YOUR_PLUGIN_NAME替换为插件的名称。我在Paypal和其他支付网关调用的单个文件中使用它。
有些人也使用以下内容,但我从未让它正常工作,我不确定它是否被弃用。
require_once('../../../../wp-blog-header.php');