在编写WordPress插件时,您经常需要在整个WordPress安装过程中以及插件或主题中引用各种文件和文件夹。
WordPress提供了几个函数,可以轻松确定给定文件或目录所在的位置。始终在插件中使用这些函数,而不是硬编码引用wp-content目录或使用WordPress内部常量。
Tip:WordPress允许用户将其wp-content目录放置在任何他们想要的地方,并根据需要重命名它。永远不要假设插件在wp-content/plugins、上传位置在wp-content/uploads,或者主题在wp-content/themes。
PHP的__FILE__
魔术常量自动解析符号链接,因此如果wp-content
或wp-content/plugins
或者即使单个插件目录是符号链接的,硬编码路径也无法正常工作。
常见用法
如果你的插件包含JavaScript文件、CSS文件或其他外部文件,那么你可能需要这些文件的URL,以便将它们加载到页面中。为此,您应该使用plugins_url()函数如下:
plugins_url( 'myscript.js', __FILE__ );
这将返回myscript.js的完整URL,例如:example.com/wp-content/plugins/myplugin/myscript.js
。
要将插件的JavaScript或CSS加载到页面中,您应该使用wp_enqueue_script()或wp_enqueue_style()分别通过plugins_url()
作为文件URL。
可用函数
WordPress包括许多其他函数,用于确定插件、主题和WordPress本身中文件或目录的路径和URL。有关其使用的完整信息,请参阅每个函数的单独文档介绍页面。
插件
plugins_url() plugin_dir_url() plugin_dir_path() plugin_basename()
主题
get_theme_file_uri() get_template_directory_uri() get_stylesheet_directory_uri() get_stylesheet_uri() get_theme_root_uri() get_theme_root() get_theme_roots() get_stylesheet_directory() get_template_directory()
网站主页
home_url() get_home_path()
WordPress
admin_url() site_url() content_url() includes_url() wp_upload_dir()
多站点
get_admin_url() get_home_url() get_site_url() network_admin_url() network_site_url() network_home_url()
常量
WordPress在确定内容和插件目录的路径时使用以下常量。这些不应该被插件或主题直接使用,但为了完整性,这里列出了它们。
WP_CONTENT_DIR // no trailing slash, full paths only WP_CONTENT_URL // full url WP_PLUGIN_DIR // full path, no trailing slash WP_PLUGIN_URL // full url, no trailing slash
// Available per default in MS, not set in single site install // Can be used in single site installs (as usual: at your own risk) UPLOADS // (If set, uploads folder, relative to ABSPATH) (for e.g.: /wp-content/uploads)
相关
WordPress目录:
home_url() | 首页 URL | http://www.example.com |
site_url() | 网站目录 URL | http://www.example.com 或 http://www.example.com/wordpress |
admin_url() | 管理目录 URL | http://www.example.com/wp-admin |
includes_url() | Includes 目录 URL | http://www.example.com/wp-includes |
content_url() | Content 目录 URL | http://www.example.com/wp-content |
plugins_url() | 插件目录 URL | http://www.example.com/wp-content/plugins |
wp_upload_dir() | 上传目录 URL (返回数组) | http://www.example.com/wp-content/uploads |