Я пытаюсь скрыть заголовок витрины на своей домашней странице. Этот код скрывает это со всех сторон:

function sf_change_homepage_title( $args ) {
    remove_action( 'storefront_page', 'storefront_page_header', 10 );
}
add_action( 'init', 'sf_change_homepage_title' );

Но я не могу использовать is_front_page (), потому что WordPress загружает functions.php до того, как объект $ wp_query будет настроен на текущей странице, как описано в здесь.

Я бы предпочел не использовать плагин «Переключение заголовка для темы витрины».

Спасибо.

2
retroriff 18 Апр 2016 в 17:15

2 ответа

Лучший ответ

Решение - заменить init на wp:

add_action( 'wp', 'sf_change_homepage_title' );

Спасибо.

2
retroriff 2 Май 2016 в 06:35

Вы неправильно поняли ответ, на который указали ссылку. Вы не можете использовать is_front_page() прямо внутри functions.php , но можете полностью использовать его в функции обратного вызова.

Условное выражение is_front_page() доступно только после настройки запроса, что происходит при инициализации .

Итак, это:

function sf_change_homepage_title( $args ) {
    if(is_front_page()) {
        remove_action( 'storefront_page', 'storefront_page_header', 10 );
    }
}
add_action( 'init', 'sf_change_homepage_title' );

Буду работать.

2
vard 18 Апр 2016 в 14:47