我可以通过使用admin_body_class
筛选器将类名添加到<body>
元素,并在样式表中为该类编写选择器。
add_filter( \'admin_body_class\', \'add_status_classes\' );
function add_status_classes( $classes ) {
$post_meta = get_post_meta( get_the_ID() );
$is_darkmode = $post_meta[\'_is_post_dark_mode\'];
if ( $is_darkmode ) {
$classes = $classes . \' dark-editor-mode\';
}
return $classes;
}
/* Normal Styles */
p:after {
content: "Walking on sunshine!";
}
/* Styles when custom post meta option is true */
.dark-editor-mode p {
content: "It sure is dark in here!";
}
同样,黑暗模式只是一个简单的例子,因为我的实际用例太复杂,无法在这里解释,但概念是相同的。
不幸的是,此解决方案的缺点是,由于类没有绑定到JavaScript存储,因此在用户更改post-meta设置后,必须刷新编辑器。如果有人知道如何将控制父元素类名的数据存储连接到Gutenberg中的编辑器面板,请添加到我的答案中。