2017-06-22 20 views
1

我试图排队一个样式表,我在有这个电流通路的工作我的管理插件PAGE电泳文件,排队WordPress的插件管理样式表在其他目录(上一)

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

所有我找要做的就是排队,坐在从上一级目录我目前在一个样式表。这个样式表的路径是像这样,

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

我公司目前已经通过调用我的班内添加动作挂钩工作像这样的构造函数:

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

这是我在过去所做的那样 - 定义一个常量在主\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'); 
+0

添加'../'时才有效。谢谢您的解决方案。我现在仍在审视事情。 –

+0

这对我不起作用,但我可能会错误地使用它。我完全改写了我的问题以及新的细节,因为我觉得它缺乏。 –

+0

似乎我在代码中犯了一个小错误。我刚刚编辑了''plugin_dir_url'而不是'plugin_dir_path'。 – Hollings

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'); 
+0

谢谢你的解决方案。我现在仍在审视事情。 –

+0

我用你的解决方案大部分时间都在那里,但是如果你看到了,我会重新考虑我的问题,因为我觉得它非常平淡(并且没有真正解释我做得很好)。我现在正在工作,但是如果您看到我的问题编辑,只有在向路径 –

0

请尝试以下的 'fileiamworkingon.php':

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

的 '../' 你会搬回目录。

+0

这可能不是要走的路,你是否从WP文档中获得了这个结果? –

+0

此外,只是想让你知道,复制和粘贴最终在我的代码尝试从路径“sitename.com/css/styles.css”加载styles.css文件。 –

+0

是的,我从WordPress文档中获得它。 –