在我的插件中,我有一些管理区域的样式。最初,我只是在主插件文件中进行内联,但现在我已将它们排队了。样式表正确排队;所有样式都有效,除了 - 样式表中引用的任何图像都没有显示。当样式是内联的时候它们显示得很好,但是当我将样式表排入队列时它们就不会显示出来。这不是路径的问题,因为样式表与插件文件位于同一目录中,其中样式以前是内联的。
以下是我排队的方式:
function my_style() {
wp_register_style( 'style', plugins_url('style.css', __FILE__) );
wp_enqueue_style( 'style' );
}
add_action( 'admin_enqueue_scripts', 'my_style' );
再次:入队是正确的,因为所有其他样式都可以正常工作。所以这是我的样式表中的图像示例:
#mycustom-mb h3:before {
content:url("../wp-content/plugins/my-plugin/images/banner.png");
}
当样式是内联的而不是排队时,同一行也可以工作。 WordPress是否在做一些奇怪的事情来阻止我的图像?它甚至没有在Firebug中给我一个文件未找到错误,也没有在标题中显示损坏的图像链接(就像你有一个坏路径时那样)。它不在那里。在Firebug中,当您将鼠标悬停在其链接上时,Firebug甚至不会尝试搜索图像,就像在所有其他图像上一样。因此,当样式表排入管理员时,感觉WordPress对图像做了一些奇怪的事情。
我不能做一个常规包含,因为,虽然它工作正常,但当我有CSS内联或包含时,它会在插件激活时给出“意外字符”警告消息。
答案 0 :(得分:2)
在您的某个css规则中使用url()
时,您必须记住,路径是相对于找到它们的样式表。
因此,对于内联样式,路径相对于/wp-admin/
,但是当您加载/wp-content/plugins/my-plugin/style.css
中找到的样式表时,所有路径都将相对于/wp-content/plugins/my-plugin/
。
因此,为了定位找到图片的正确网址,您只需使用以下网址:
#mycustom-mb h3:before {
content:url("images/banner.png");
}
我现在正在使用Chrome开发者工具,当样式表中的规则导致浏览器加载图片时,我肯定会显示404找不到错误,因此我不确定为什么FireBug不会显示任何错误。