在另一个目录中排队Wordpress插件管理样式表(上一个)

时间:2017-06-22 17:42:41

标签: php wordpress

我正在尝试为我的管理插件页面排队样式表。我正在使用的文件有这个当前路径,

\plugins\my-plugin-name\includes\fileiamworkingon.php

我要做的就是将一个样式表排入队列,该样式表位于我目前所在目录的一个目录中。此样式表的路径是这样的,

\plugins\my-plugin-name\css\styles.css

我目前通过调用类构造函数中的add action hook来实现它:

add_action('admin_enqueue_scripts', array($this, 'pluginStyles'));

如您所见,它然后调用pluginStyles函数,我在其中执行以下代码,

public function pluginStyles() {
    wp_register_style('my_plugin_stylesheet',  plugin_dir_url(__FILE__) . '../css/styles.css' );
    wp_enqueue_style('my_plugin_stylesheet');
}

目前,这是我可以使用它的唯一方法,因为在文件路径中添加了一些微妙的“../”。否则,它会尝试从'includes'目录中访问css文件夹,显然没有css文件夹。

这似乎不是最好的解决方案,也许有更多的“Wordpress方式”来解决这个问题。

3 个答案:

答案 0 :(得分:3)

以下是我过去所做的事情 - 在主\plugins\my-plugin-name\my-plugin-name.php文件中定义一个常量:

/** Define plugin path constant */
if (!defined('PLUGIN_PATH')) {
    define('PLUGIN_PATH', plugin_dir_url(__FILE__));
}

在您的\includes\fileiamworkingon.php文件中加入队列:

/** Enqueue from any other file in the plugin directory */
wp_register_style('my_plugin_stylesheet',  PLUGIN_PATH . 'css/styles.css' );
wp_enqueue_style('my_plugin_stylesheet');

答案 1 :(得分:1)

您可以使用plugin_dir_url( __FILE__ );

获取插件目录路径

所以你应该能够以这种方式注册你的样式表:

function my_plugin_scripts() {
    wp_register_style( 'my_plugin_stylesheet',  plugin_dir_url( __FILE__ ) . 'my-plugin-name/css/styles.css' );
    wp_enqueue_style( 'my_plugin_stylesheet' );
}
add_action( 'wp_enqueue_scripts', 'my_plugin_scripts' );

答案 2 :(得分:0)

在'fileiamworkingon.php'中尝试以下内容:

 wp_enqueue_style('styles', plugin_dir_path() . '../css/styles.css', array(), null);

'../'会将您移回目录。