web-dev-qa-db-ja.com

header.phpのget_optionがカスタマイザから値を返さない

ソーシャルリンクというカスタマイザに新しいセクションを設定し、その下にFacebookというオプションとテキストフィールドコントロールを設定しました。これが私のfunctions.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_link_facebookの値を取得しようとしても、何も返されません。これが私のheader.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
AT92

これを解決するには2つの方法があります。

1 modをそのままにして、get_theme_modの代わりにget_optionを使用する

2設定を変更して、MODをオプションとして保存します。

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