Как скрыть заголовок страницы с домашней страницы темы WooCommerce Storefront?

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

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 будет настроен на текущей странице, как описано в здесь.

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

Спасибо.


person retroriff    schedule 18.04.2016    source источник


Ответы (2)


Вы неправильно поняли ответ, на который указали ссылку. Вы не можете использовать 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' );

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

person vard    schedule 18.04.2016
comment
Я пробовал это перед тем, как опубликовать этот вопрос, но это не сработало. - person retroriff; 20.04.2016
comment
Если это не сработает, это потому, что ваше storefront_page действие выполняется до init. Учитывая, что это действие связано с вашей темой / плагином, вам нужно выяснить, в какой момент оно зарегистрировано и какой крючок вы можете использовать, чтобы предпринять действие раньше. Может быть, попробуй с after_setup_theme вместо init. - person vard; 25.04.2016

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

add_action( 'wp', 'sf_change_homepage_title' );

Спасибо.

person retroriff    schedule 02.05.2016