Поддержка Проблемы и решения Не работает get_header

  • Для того, чтобы использовать разные заголовки в шапке использую код вида:

    
    <?php 
    if (is_page('70')) {
     get_header('k');
     }
    elseif (is_page('50')) {
     get_header('g');
     }
     else {
     get_header();
    } ?>
    

    Для страницы 50 он отлично работает, для любой свежесозданной страницы он отлично работает, но для страниц: Главная, Блог Козерога и Галерея, он не работает. В чем может быть причина?

    Главную страницу прописываю как home, страницу записей пробовала по id=70 и как posts.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Главную страницу прописываю как home

    Попробуйте is_front_page().

    страницу записей пробовала по id=70 и как posts.

    Попробуйте is_home().

    Попробовала, все равно не работает, я попробовала создать новую страницу — id-254 , для нее код работает, я сделала эту страницу полностью повторяющей страницу Галереи, для страницы 254 код работает, а для Галереи — нет. Потом я назначила страницу 254 — страницей записей и код перестал работать. В шаблоне для отдельной записи (single.php) прописала <?php get_header('k'); ?> и это работает.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Потом я назначила страницу 254 — страницей записей и код перестал работать.

    Как выглядит код, который перестал работать?

    <?php 
    if (is_page('254')) {
     get_header('k');
     }
    elseif (is_page('50')) {
     get_header('g');
     }
     else {
     get_header();
    } ?>

    Часть кода, относящаяся к странице 50 работает, часть кода, относящаяся к странице 254 перестает работать, после того, как страницу 254 я назначаю страницей записей.

    Модератор Юрий

    (@yube)

    после того, как страницу 254 я назначаю страницей записей.

    Очевидно, после такого почетного назначения она перестает быть простой статической страницей и использовать шаблон page.php.

    p.s. Проверки is_page(), is_home() и т.п. относятся к выборке записей (wp_query), а не к шаблоном.

    Очевидно, после такого почетного назначения она перестает быть простой статической страницей и использовать шаблон page.php.

    Отсюда вопрос, какой же шаблон она использует и где его искать? В свойствах страницы выбор шаблона для страницы записей отсутствует.

    Модератор Юрий

    (@yube)

    Отсюда вопрос, какой же шаблон она использует и где его искать?

    Используется шаблон, наиболее подходящий из имеющихся в Теме.
    Матчасть тут: Template Hierarchy

    Модератор Юрий

    (@yube)

    Да, есть плагины, показывающие используемый в данный моент шаблон. Некоторые из них даже работают 🙂

    Но лично я делаю проще: в шаблоны добавляю коммент или просто вывод имени файла. Открыл и сразу увидел.

    Попробовала прописать в файл header

    <?php if (is_page('70')) : ?>
    <h1 class="blog-title">
    <a href="<?php echo esc_url( home_url() ); ?>" title="Блог Козерога" rel="home">Блог Козерога</a>
    </h1>
    <?php else : ?>
    <h1 class="blog-title">
    <a href="<?php echo esc_url( home_url() ); ?>" title="<?php echo esc_attr( get_bloginfo( 'title' ) ); ?> &mdash; <?php echo esc_attr( get_bloginfo( 'description' ) ); ?>" rel="home"><?php echo esc_attr( get_bloginfo( 'title' ) ); ?></a>
    </h1>
    <?php endif; ?>

    Это решает вопрос с Галереей, которая не использовала шаблон page.php, но поменять h1 в файле Страницы записей упорно не удается. Страница записей, по идее, точно должна обращаться к шаблону header. Но почему она не реагирует на свой id=70?

    Я попробовала прописать

    <?php 
    if (is_page('70')) {
     get_header('k');
     }
     else {
     get_header();
    } ?>

    в файле index, но это все равно не сработало для Страницы записей.

    Ура! Вопрос решился) Удалось прописать свой h1 на Страницу записей путем добавления в шаблон header кода

    <?php if (is_home()) : ?>
    <h1 class="blog-title">
    <a href="<?php echo esc_url( home_url() ); ?>" title="Блог Козерога" rel="home">Блог Козерога</a>
    </h1>
    <?php else : ?>
    <h1 class="blog-title">
    <a href="<?php echo esc_url( home_url() ); ?>" title="<?php echo esc_attr( get_bloginfo( 'title' ) ); ?> &mdash; <?php echo esc_attr( get_bloginfo( 'description' ) ); ?>" rel="home"><?php echo esc_attr( get_bloginfo( 'title' ) ); ?></a>
    </h1>
    <?php endif; ?>

    Еще работает прописывание в index кода

    <?php 
    if (is_home('')) {
     get_header('k');
     }
     else {
     get_header();
    } ?>

    Спасибо всем за помощь.

Просмотр 10 ответов — с 1 по 10 (всего 10)