我在WP Customizer中创建了一个新控件(复选框)。其工作方式如下:选中复选框时,相应的部分应显示上次发布的帖子(true),或选中复选框时,显示自定义背景图像(和某些内容)(false)。
第一次设置更改时一切正常。假设页面加载时未选中输入-该部分将显示自定义背景图像。如果选中该复选框,则部分将刷新,并显示最后一篇文章。在这里之前一切都很好。
但如果我取消选中该复选框(作为对同一控件的第二个操作),则什么都不会发生。下次检查/取消检查时仍然没有任何内容。
我没有任何与此控件相关的JS(我还删除了所有自定义JS,问题仍然存在)。
customizer.php
$wp_customize->add_setting( \'latest_post\',
array(
\'default\' => "",
\'type\' => \'theme_mod\',
\'capability\' => \'edit_theme_options\',
\'transport\' => \'postMessage\',
)
);
$wp_customize->add_control(\'latest_post\',
array(
\'label\' => __( \'Header Content\', \'mytheme\' ),
\'section\' => \'header_section\',
\'settings\' => \'latest_post\',
\'type\' => \'checkbox\'
)
);
$wp_customize->selective_refresh->add_partial( \'latest_post\', array(
\'selector\' => \'.header-section\',
\'render_callback\' => \'header_markup\'
) );
function header_markup(){
$latest_post = get_theme_mod(\'latest_post\');
switch($latest_post):
case true:
return "latest post";
case false:
return "custom media";
default:
return "custom media";
endswitch;
}
html
<div class="header-section">
<php echo header_markup(); ?>
</div>