get_theme_mod всегда возвращает значение по умолчанию

Я работаю над веб-сайтом клиента, и я пытаюсь добавить ссылки в социальных сетях к настройщику, который затем можно вызвать через get_theme_mod через get_theme_mod . Однако при попытке вызвать их я всегда получаю значение по умолчанию.

Когда я проверил get_theme_mods , они, похоже, не были определены вообще … Однако в настройке темы поля есть.

Я попытался использовать следующие вопросы, но это не помогло мне:
get_theme_mod (); ничего не возвращает
https://wordpress.stackexchange.com/questions/144544/get-theme-mod-return-a-blank-value-instead-of-saved-value

Добавленный код

 // Add social links setting $wp_customize->add_section( 'ta_pluton_social_links', array( 'title' => __( 'Social Media Links', 'ta_pluton' ), 'description' => __( 'Links for the Social Media buttons on the home page.', 'ta_pluton' ), 'priority' => 10 ) ); $social_links_default_settings = array( 'default' => '#', ); $wp_customize->add_setting('ta_pluton_social_link[facebook]', $social_links_default_settings); $wp_customize->add_setting('ta_pluton_social_link[twitter]', $social_links_default_settings); $wp_customize->add_setting('ta_pluton_social_link[googleplus]', $social_links_default_settings); $wp_customize->add_setting('ta_pluton_social_link[tumblr]', $social_links_default_settings); $wp_customize->add_setting('ta_pluton_social_link[youtube]', $social_links_default_settings); $wp_customize->add_control('ta_pluton_social_link[facebook]', array( 'label' => __('Facebook URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[facebook]', )); $wp_customize->add_control('ta_pluton_social_link[twitter]', array( 'label' => __('Twitter URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[twitter]', )); $wp_customize->add_control('ta_pluton_social_link[googleplus]', array( 'label' => __('Google+ URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[googleplus]', )); $wp_customize->add_control('ta_pluton_social_link[tumblr]', array( 'label' => __('Tumblr URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[tumblr]', )); $wp_customize->add_control('ta_pluton_social_link[youtube]', array( 'label' => __('YouTube URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[youtube]', )); 

И это функция короткого кода:

 /** * Add a social media link shortcode */ if( !function_exists( 'ta_pluton_social_media_shortcode' ) ) { function ta_pluton_social_media_shortcode( $atts ) { $attributes = shortcode_atts( array( 'default' => '#' ), $atts ); if ( !array_key_exists( 'media' ) ) { trigger_error('The social_media_link shortcode requires a medium to be selector, eg: [social_media_link media="facebook"]' ); } return get_theme_mod( 'ta_pluton_social_link[' . strtolower( $attributes['media'] ) . ']', $attributes['default'] ); } add_shortcode( 'social_media_link', 'ta_pluton_social_media_shortcode' ); } 

В коде Customizer вам необходимо выполнить следующие изменения для работы. Вам не нужен ta_pluton_social_link[facebook] как массив в Control. Проверьте следующий пример и измените его в соответствии с другими полями.

  $wp_customize->add_control('facebook', array( 'label' => __('Facebook URL', 'ta_pluton'), 'section' => 'ta_pluton_social_links', 'settings' => 'ta_pluton_social_link[facebook]', )); 

Чтобы получить URL-адрес, вы можете использовать get_theme_mod . Посмотрите пример ниже. Следующий фрагмент демонстрирует выбор URL-адреса Facebook.

 $ta_pluton_social_link = get_theme_mod( 'ta_pluton_social_link' ); $facebook_url = $ta_pluton_social_link['facebook'];