Header.php中的Get_Option未从定制器返回值

时间:2016-05-23 作者:TJ152

我在customizer中设置了一个名为“社交链接”的新部分,在该部分下,我设置了一个名为“Facebook”的选项和文本字段控件。这是我的函数中的代码。php:

// SOCIAL LINKS
$wp_customize->add_section( \'social_links_section\' , array(
    \'title\'      => __( \'Social Links\', \'my_theme\' ),
    \'priority\'   => 100,
) );
// Facebook
$wp_customize->add_setting( \'social_link_facebook\' , array(
    \'default\' => \'\'
) );
$wp_customize->add_control(
    \'social_link_facebook\', 
    array(
        \'label\'    => __( \'Facebook\', \'my_theme\' ),
        \'section\'  => \'social_links_section\',
        \'settings\' => \'social_link_facebook\',
        \'type\'     => \'url\',
    )
);
但当我试图在我的主题模板文件中获取social\\u link\\u facebook的价值时,它不会返回任何东西。这是我头上的代码。php:

<?php $facebook = get_option( \'social_link_facebook\' );
if( !empty($facebook) ) { ?>
    <a href="<?php echo $facebook ?>" target="_blank" ><span class="dashicons dashicons-facebook-alt"></span></a>
<?php } ?>
知道为什么会这样吗?

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

有两种方法可以解决此问题:

1保持mods不变并使用get_theme_mod 代替get_option

2通过更改设置,将mods存储为选项:

$wp_customize->add_setting( \'social_link_facebook\' , array(
    \'default\' => \'\',
    \'type\' => \'option\'
) );

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容