Wordpress Скрыть заголовок на определенных страницах с помощью is_page()

Я пытаюсь удалить заголовок h1 на моей странице в моем файле functions.php.

Вот мой код:

function remove_about_page_title()
{
    if (is_page('about')) {
        remove_action('storefront_page', 'storefront_page_header', 10);
    }
}
add_action('init', 'remove_about_page_title');

Если я делаю дамп var на is_page('about'), то получаю false, даже если это страница с информацией.

Если я изменю свою функцию add_action(), чтобы запустить функцию remove_about_page_title() с инициализации на storefront_page, тогда is_page() напечатает true, но функция remove_action больше не работает.

Это из-за того, что вы не попали в цепочку?

Есть ли способ удалить заголовок страницы внутри файла functions.php без CSS и #ids?


person Jethro Hazelhurst    schedule 22.03.2018    source источник
comment
Вы должны использовать is_page('pageId') вместо is_page('about')   -  person Darshan Jain    schedule 22.03.2018
comment
также используйте wp вместо init и is_page работает для page ID, page Slug убедитесь, что about является кратким описанием страницы. я думаю, что это тот же вопрос /вопросы/46051486/   -  person Noman    schedule 22.03.2018
comment
@Darshan, отличное решение, оно работает. Номан, это лучшее решение, потому что оно не привязано к page_id, который может (хотя и маловероятно) измениться. Благодарю вас!   -  person Jethro Hazelhurst    schedule 22.03.2018
comment
Идентификатор страницы, заголовок, слаг или их массив   -  person Nate Beers    schedule 22.03.2018
comment
@JethroHazelhurst, рад помочь вам. Спасибо.   -  person Darshan Jain    schedule 22.03.2018
comment
Спасибо за голосование. Не стесняйтесь принять мой ответ, если решение касается вашей проблемы. @ДжетроХейзелхерст   -  person Darshan Jain    schedule 22.03.2018


Ответы (2)


Вы должны использовать is_page('pageId') вместо is_page('about');

person Darshan Jain    schedule 22.03.2018

Я бы сделал массив в вашем файле functions.php, который содержит имена страниц, на которых вы хотите скрыть заголовок.

functions.php

$noTitle = array("page1", "page2");

заголовок.php

if(in_array($title, $noTitle)){
    //no title
}
else{
    //title
}

По крайней мере, я думаю, что вы можете сделать это таким образом. Вы можете проверить, когда загружается functions.php. Если он еще не загружен, возможно, вам придется создать еще один файл php и загрузить его вручную в верхней части файла header.php.

person Joshua Blevins    schedule 22.03.2018