我正在尝试为我的管理插件页面排队样式表。我正在使用的文件有这个当前路径,
\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方式”来解决这个问题。
答案 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);
'../'会将您移回目录。