我正在为块编辑器编写一个编辑器样式表,以更好地反映编辑器中我的主题的布局,并且我需要能够在其中处理不同的帖子类型。
在前端,有body_class()
函数,其中插入一个类,该类用于标识post类型,并可在组合选择器中使用,以仅在特定post类型中寻址某些元素。
post type类位于body
显示编辑器的页面标记,但样式表中的编辑器CSS显然是以一种“隔离”的方式应用的–组合选择器,包括body
标记在编辑器中不起作用。
因此,我正在寻找类似的东西,它将在块编辑器中工作,以便我可以在组合选择器中使用它,该选择器仅适用于特定帖子类型中的某些元素。
添加内容:
我尝试通过以下方式检查帖子类型:
wp.domReady(function() {
var postType = jQuery(\'form.metabox-base-form input#post_type\').attr(\'value\');
if(postType == \'post\'){
alert("It\'s a post!");//in real life some other action...
}
});
但是,尽管至少触发我在其中输入的警报是合乎逻辑的,但当我加载帖子的编辑页面时,什么也不会发生,其中包含其“post”值的输入元素明显存在。(?)
最合适的回答,由SO网友:Johannes 整理而成
与此同时,我还在Stackoverflow上发布了这个问题。我在对这个问题的评论中得到了一个暗示,这使我找到了解决办法。我没有找到纯CSS解决方案,但使用以下jQuery脚本动态添加相应的类:
$(document).ready(function() {
if($(\'body\').hasClass(\'post-type-page\')) {
$(\'#editor\').addClass(\'post-type-page\');
} else if($(\'body\').hasClass(\'post-type-post\')) {
$(\'#editor\').addClass(\'post-type-post\');
}
});
关键是使用
admin_enqueue_scripts
, 与前端脚本分开。有关详细信息,请参阅
https://stackoverflow.com/a/60155398/5641669