WordPress: Как убрать sidebar для Страницы записей?

559
14 февраля 2017, 21:56

Здравствуйте, Вопрос заключается в следующем: Каким образом (без использования плагинов) я могу убрать sidebar со Страницы Записей?

Мои действия: Есть страницы: Home, Blog, Contact

  1. Копирую index.php - index-blog.php. В нем добавляю Template name:blog index-blog.php и убираю get_sidebar();
  2. Перехожу в админку, открываю Страницы - Blog - Изменить - Шаблон - применяю шаблон index-blog.php (Sidebar на странице Blog пропал)
  3. Перехожу Настройки - Чтение. Выбираю Страницу Записей - Blog.
  4. Перехожу на сайт - страница Blog - Sidebar отображается.

Если я правильно понимаю, то проблема кроется в иерархии файлов, но в чем именно ошибка, не могу понять. Очень прошу вашего совета

Заранее спасибо!

Answer 1

Сделайте вывод сайдбара условным, для этого откройте редактор шаблона, выберите главную страницу (index.php) и оберните его в if.

Однако функции проверки на blog нету, поэтому необходим костыль. В самый низ файла пишете

function is_blog () {
global  $post;
$posttype = get_post_type($post );
return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;

}

Затем где у вас вывод сайдбара пишете так

<?php if (!is_blog()) {
get_sidebar();
} ?>

Таким образом сайдбар будет выведен на всех страницах кроме блога.

Answer 2

Зависит от темы. В общем случае достаточно удалить из шаблона записи вызов сайбара.

Но при любом изменения тем стоит использовать механизм дочерних тем.

Кроме того с версии 4.7 у ВП появилась возможность создавать шаблоны записей, аналогичные шаблонам страниц.

READ ALSO
php json парсинг внутри (callback)

php json парсинг внутри (callback)

Здравствуйте! Подскажите пожалуйста, как мне спарсить значения json файла, который обернут в callback ?

450
Ошибка драйвера mysql при переходе на php7

Ошибка драйвера mysql при переходе на php7

В результате перехода на Bitrix 165 и php версии 7 получил следующую багу:

478
Постраничная навигация в таблице

Постраничная навигация в таблице

Помогите сделать постраничную навигацию по выводу таблиц, к примеру по 20 строк на странице, вот код

407
Как получить все переводы в Laravel?

Как получить все переводы в Laravel?

Нужно получить все все переводы из файлов локализации по выбранному языку в виде многомерного массива

382