是的,但是您需要使用不同的方法,并且您可能需要做更多的工作,因为active_callback
在这里,PHP可以直接与数据库连接,以确定当前查询是否针对联系人页面。默认情况下,Customizer控件只能访问previewUrl
. 因此,如果您可以依靠URL来确定某个内容是否是联系人页面,那么您需要做的就是:
function isContactPage() {
return /contact/.test( wp.customize.previewer.previewUrl.get() );
}
var section = new wp.customize.Section( \'section_id\', {
title: \'Contact Page Options\',
customizeAction: \'Customizing\',
priority: 1,
panel: \'panel_id\',
active: isContactPage() // Initial state.
} );
wp.customize.section.add( section );
// Update the active state whenever the previewed URL changes.
wp.customize.previewer.previewUrl.bind( function activeCallback() {
section.active.set( isContactPage() ); // Update state.
} );
设置
active
状态将需要在中执行PHP逻辑
is_contact_page
然后将此消息从预览窗口发送到控件窗口(这是使用
active_callback
幕后)。这是在
Customize Posts 插件。然而,有
#36582 它建议将主查询导出到JS,并将一条消息作为中的附加值从预览窗口发送到控件窗口
wp.customize.state
.