如何包含相对于文件目录的文件

时间:2018-03-04 作者:Troy Templeman

我正在将一个小插件构建到WordPress主题中,如wp-content/themes/my-theme/inc/my-plugin.

我想知道如何在这个文件夹中包含与主插件文件相关的文件wp-content/themes/my-theme/inc/my-plugin/my-plugin.php.

例如,在my-plugin.php, 我需要包括wp-content/themes/my-theme/inc/my-plugin/css/style.css.

我在找wp_enqueue_style( \'my-plugin-style\', plugins_url( \'/css/style.css\', __FILE__ ) ); 但我希望它只与my-plugin.php 目录,而不是相对于WordPress插件目录或主题目录。这样,如果我想的话,我也可以将其作为一个单独的插件,而不需要更改任何代码。

请不要问我为什么要将此构建到主题中,或者它应该是一个单独的插件。只是在寻找可能的解决方案。

谢谢

1 个回复
SO网友:Mayeenul Islam

主题内的插件-听起来像是新的东西。您可能在此上下文中找不到函数。让我们创建我们的:

<?php
/**
 * Get My Plugin URL.
 * @return string.
 */
function wpse295740_get_plugin_url() {
    // http://example.com/wp-content/themes/my-theme/inc/my-plugin
    return get_template_directory_uri() .\'/inc/my-plugin\';
}

/**
 * Get My Plugin Path.
 * @return string.
 */
function wpse295740_get_plugin_path() {
    // eg. /home/user/var/www/wordpress/wp-content/themes/my-theme/inc/my-plugin
    return get_template_directory() .\'/inc/my-plugin\';
}
您可以使用__FILE__ 魔法常数等-见原件plugin_url() 来源和plugin_dir_path() 也和trailingslashit()untrailingslashit() 太容易了。

结束