我最近使用wp自定义程序插件重置自定义程序设置,这样做是为了了解某些错误主题用户会对主题进行全新安装,并且我发现在自定义程序界面上一切正常但是当我实际加载时我的设计,我得到了完全不同的结果。
这是它的样子
自定义程序重置后的博客结果
以下是我用来更改customizer.php选项设置的代码(不要认为我的设置模式有任何问题)
$wp_customize->add_setting(
'sq_hide_blog_info',
array(
'default' => true,
)
);
$wp_customize->add_control(
new Toggle_Checkbox_Custom_control(
$wp_customize,
'sq_hide_blog_ctr',
array(
'description' => __( 'Display Site name / Description' ),
'label' => __( 'Check here' ),
'section' => 'custom_footer_text',
'settings' => 'sq_hide_blog_info',
'type' => 'checkbox',
'section' => 'sq_nav_design'
)
)
);
这是我用来更改实际代码中的选项。
示例
<?php if(get_theme_mod('nav_type_select') == 1): ?>
<?php include get_template_directory() . '/template-parts/header/header-1.php'?>
<?php else: ?>
<?php include get_template_directory() . '/template-parts/header/header-2.php'?>
<?php endif; ?>
上面的设置是一个复选框,默认输出设置为1,我的意思是,如果选择导航1然后输出其他,输出nav 2作为默认值,如果导航1,则不选择输出导航2事情工作正常,直到我重置自定义程序默认值,我想在我全新安装时会出现同样的错误。
我知道代码中的设置与customizer.php中的设置并不相同,仅供参考。
我完全依赖于定制器默认为主题中的输出值,没有后退。
我的直觉告诉我问题来自于我放置if语句的方式,因为我在我的代码中使用了该模式。
先谢谢,我真的很感谢你的帮助。
要明确:我需要帮助,检查我的if else模式是否正确,如果是,然后任何解决方法使定制器实际更新默认页面中的新设置。
答案 0 :(得分:0)
您需要在get_theme_mod()
中传递主题修改名称试试这个代码段
<?php if( checked( get_theme_mod( 'sq_hide_blog_info', true ), true, false ) ) : ?>
<?php include get_template_directory() . '/template-parts/header/header-1.php'?>
<?php else : ?>
<?php include get_template_directory() . '/template-parts/header/header-2.php'?>
<?php endif; ?>
答案 1 :(得分:0)
我能解决这个问题
这对我有用,即使所有设置都已刷新
if(get_theme_mod(&#39; my_banner_setting&#39;,1)== 1){
// proceed
}