确定插件和内容目录

在编写 WordPress 插件代码时,您通常需要在整个 WordPress 安装过程中以及在您的插件或主题中引用各种文件和文件夹。

WordPress 提供了几个函数来轻松确定给定文件或目录所在的位置。始终在您的插件中使用这些函数,而不是对 wp-content 目录的硬编码引用或使用 WordPress 内部常量。

提示: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__ );

这会将完整的 URL 返回到 myscript.js,例如 example.com/wp-content/plugins/myplugin/myscript.js.

要将插件的 JavaScript 或 CSS 加载到页面中,您应该分别使用 wp_enqueue_script() 或 wp_enqueue_style() 将结果 plugins_url() 作为文件 URL 传递。

可用功能

WordPress 包括许多其他函数,用于确定插件、主题和 WordPress 本身内文件或目录的路径和 URL。有关其使用的完整信息,请参阅每个功能的各个 DevHub 页面。

插件

plugins_url()
plugin_dir_url()
plugin_dir_path()
plugin_basename()

主题

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()主页网址http://www.example.com
网站网址()网站目录网址http://www.example.com或http://www.example.com/wordpress
admin_url()管理目录网址http://www.example.com/wp-admin
includes_url()包括目录 URLhttp://www.example.com/wp-includes
content_url()内容目录网址http://www.example.com/wp-content
插件_url()插件目录 URLhttp://www.example.com/wp-content/plugins
wp_upload_dir()上传目录 URL(返回一个数组)http://www.example.com/wp-content/uploads