wp_enqueue_style不起作用

时间:2016-03-01 21:19:25

标签: css wordpress wordpress-plugin

首先,我尝试过这个并没有奏效:“https://wordpress.stackexchange.com/questions/89494/how-to-enqueue-the-style-using-wp-enqueue-style/89495#89495”。

我想要做的是一个带有唯一页面的插件(选项页面),我试图在头部标记<link href="my_dir/css/style.css"/>中插入。我的插件的前缀是easydm,并在主文件中包含以下代码:

define( 'EASYDM_VERSION', '1.0' );
define( 'EASYDM__MINIMUM_WP_VERSION', '2.1' );
define( 'EASYDM_DIRECTORY_NAME', 'easy-downloader-manager/' );

define( 'EASYDM_ROOT_DIRECTORY', substr( plugin_dir_path( __FILE__ ), 0, strpos( plugin_dir_path( __FILE__ ), EASYDM_DIRECTORY_NAME ) ) );

define( 'EASYDM_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'EASYDM_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );

define( 'EASYDM_SETTINGS_URL', plugin_dir_url( __FILE__ ).'settings/' );
define( 'EASYDM_SETTINGS_DIR', plugin_dir_path( __FILE__ ).'settings/' );
define( 'EASYDM_SETTINGS_PATH', 'settings/' );

define( 'EASYDM_CSS_URL', plugin_dir_url( __FILE__ ).'css/' );
define( 'EASYDM_CSS_DIR', plugin_dir_path( __FILE__ ).'css/' );
define( 'EASYDM_CSS_PATH', 'css/' );    

require_once EASYDM_SETTINGS_DIR.'easydm-functions.php';

register_activation_hook( __FILE__, 'easydm_activation');

add_action( 'wp_enqueue_scripts', 'easydm_add_link_tag_to_head' );

我的easydm-functions.php有:

function easydm_add_link_tag_to_head() {
    wp_enqueue_style( 'style', get_plugin_directory_uri().'/'.EASYDM_DIRECTORY_NAME.EASYDM_CSS_PATH.'style.css' );
}

这是我的最后一次尝试,但我在wp_enqueue_style()函数上尝试了其他一些参数。

一些帮助?

由于

---编辑---

这是一种可能的解决方法。实际上,我部分地解决了这个问题。现在我需要剪切一个附加到我的链接的字符串。见:

https://wordpress.stackexchange.com/questions/219911/enqueue-script-style-plungin-development/219914?noredirect=1#comment322394_219914

---再次编辑---

我发现这个http://wpcrux.com/wordpress-enqueue-functions-version/是什么解决了上面的新问题...但仍然没有设置我的页面样式...我检查了路径是否正确,我的文件是否存在,是否为空或任何类似这样的错误

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

感谢您的分享。我在添加一些样式和脚本时遇到了同样的问题,但我认为你指出的问题不应该是根本原因,实际上,我的问题是我应该将它添加到wp_enqueue_scripts中,如下所示

add_action('wp_enqueue_scripts','nz_footer_cumstom_func');

我尝试了你的解决方案,我认为两者都可行。我的意思是wp_enqueue_style()可以接受相对路径以及完整文件路径。

答案 1 :(得分:0)

解决!!!

wp_enqueue_style函数的文档很清楚地说第二个参数是根安装WordPress的相对路径。但是当我使用完整路径查看教程中的许多示例时,我忽略了它。现在,定义此常量和所有先前的步骤一切正常。

define( 'EASYDM_CSS_PATH' , str_replace( site_url().'/', '', plugin_dir_url( __FILE__ ) ).'css/' );

并且在功能中:

wp_enqueue_style( 'easydm-style', '/'.EASYDM_CSS_PATH.'style.css', array(), null, 'all' );

所以,如果有人厌倦了寻找并且不想阅读所有讨论,最终的代码是:

define( 'EASYDM_CSS_PATH' , str_replace( site_url().'/', '', plugin_dir_url( __FILE__ ) ).'css/' );
add_action( 'admin_enqueue_scripts', 'easydm_add_link_tag_to_head' );

函数文件:

function easydm_add_link_tag_to_head() {
    wp_enqueue_style( 'easydm-style', '/'.EASYDM_CSS_PATH.'style.css', array(), null, 'all' );
    wp_enqueue_style( 'easydm-manager', '/'.EASYDM_CSS_PATH.'manager.css', array(), null, 'all' );
}

我添加了两种样式。我真的希望这能有所帮助。谢谢大家!

相关问题