CSS中的特殊性是这里最合理的解决方案,因为它是针对“插件”的,所以它的编码应该像它可以在任何站点上成功应用和使用一样,而不管主题如何。是的,在这个例子中,你可以写一个子主题,或者如果你控制主题,编辑主题CSS本身,或者添加一堆!CSS对您来说很重要,但这些都不是真正的WP最佳实践。
因此,首先要确保插件的样式表已正确排队:
function yrplugin_enqueue_frontend() {
//I organize my plugins with a lot of sub-directories so I put my stylesheets into a CSS folder
//I also always include version numbers
wp_enqueue_style( \'yrplugin-frnt-css\' , plugins_url( \'css/style.css\', __DIR__ ), array(), \'version-number-here\' );
//In case you want to enqueue some javascript...
//wp_enqueue_script( \'yrplugin-frnt-js\', plugins_url( \'js/frontend.js\', __DIR__ ), array( \'jquery\' ), \'version-number-here\', true );
}
add_action( \'wp_enqueue_scripts\', \'yrplugin_enqueue_frontend\', 100 );
对于您的短代码,如果您还没有这样做,请将输出的内容包装成这样。如果您计划在一篇文章中使用多个短代码,那么您可以切换到一个类,这样您就不会有重复的ID。
<div id="yrplugin_container">
<!-- The rest of your HMTL -->
</div>
最后,对于CSS,您需要寻找更具体的选择器:
#yrplugin_container input[type=text]{
/* your css rules */
}
#yrplugin_container input[type=submit]{
/* your css rules */
}
如果您使用这种特殊性,那么如果主主题的样式表有任何干扰,您应该不会得到太多。
如果您仍然遇到问题,那么可以简单地将CSS内联到shortcode输出的实际元素中,如:
<input type="text" style="put your overriding css here" />
这应该够了,如果你需要更多信息,请告诉我。