Предварительный просмотр настройщика Wordpress не обновляет functions.php - PullRequest
0 голосов
/ 09 мая 2019

Поэтому я столкнулся с проблемой, когда предварительный просмотр настройщика не обновляется полностью.Только когда я обновляю страницу вручную, я вижу свои изменения.Некоторые из моего кода, которые помогут объяснить ниже.

Для моих настроек настройщика у меня есть код, который выглядит примерно так

$wp_customize->add_section( 'theme_layout', array(
        'title' => __( 'Layout', 'theme' ),
        'priority' => 30
) );

$wp_customize->add_setting( 'theme_header_layout', array(
         'default' => 'default',
         'transport' => 'refresh',
) );

$wp_customize->add_control( new WP_Customize_Control( $wp_customize,
'theme_header_layout', array(
          'label' => __( 'Header', 'theme' ),
          'section' => 'theme_layout',
          'settings' => 'theme_header_layout',
          'type' => 'select',
          'choices' => array(
               'default' => 'default',
               'special_header' => 'Special Header',
           )
) ) );

Теперь в моем functions.php у меня есть код, подобный этому

//this is the code that doesn't seem to execute when the customizer refreshes
if ( 'special_header' == get_theme_mod( 'theme_header_display' ) ):
   function theme_special_header( $items ) {
       $items .= do_shortcode('[special_header_shortcode]');//This shortcode exists I just didnt bother mentioning it here
   }
   add_action( 'wp_nav_menu_secondary-menu_items', 'theme_special_header' );//Adds shortcode to menu with id of secondary-menu
endif;

Все это прекрасно работает, примите, когда я зайду в настройщик и выберу «Специальный заголовок», обновлитель обновится, и я не увижу свои изменения, пока полностью не обновлю страницу.

1 Ответ

0 голосов
/ 10 мая 2019

Я также сталкивался с подобной проблемой ранее. Вместо того, чтобы добавлять условные выражения снаружи, я оставил их внутри функции, и это сработало. Вы можете попробовать подобный подход для своего кода, и это может помочь.

Следующее не является точным ответом на ваш вопрос, но может помочь решить вашу проблему.

function wpso_customize_menu($items, $args) {
    if ( 'special_header' == get_theme_mod( 'theme_header_layout' ) ) {
        if( $args->theme_location == 'menu-1' ) {
            $items .= '<li><a href="https://example.com">Custom Link</a></li>';
        }
    }
    return $items;
}
add_filter('wp_nav_menu_items', 'wpso_customize_menu', 10, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...