Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
теми
Уроки
Хакі

Якщо ви не перший день знайомі з WordPress і розумієте загальну структуру будови теми для WordPress, то, напевно, ви помітили, що в більшості тем оформлення на сайті виводиться один і той же сайдбар усюди: на головній сторінці, у записах, у звичайних сторінках тощо. Також часто зустрічаються теми, в яких на головній сторінці сайдбару немає, але він є в тому самому вигляді на всіх інших сторінках. У цьому уроці я покажу, як можна відображати різні кастомні сайдбари для різних типів записів чи сторінок. Це відмінний трюк, який допоможе розширити функціональність вашого сайту та надати йому більш оригінального вигляду.

Для реалізації цього трюку ми задіємо Довільні поля  у WordPress та можливість виклику сторонніх php шаблонів. Щоб у вас все вийшло, бажані базові навички роботи з HTML і CSS.

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Отже, у вашій активній темі оформлення мають бути файли single.php и page.php. Перший відповідає за висновок записів на сайті, другий - за Сторінки. Відкрийте потрібний файл (залежно від того, де ви хочете налаштувати кастомний сайдбар) у будь-якому текстовому редакторі та знайдіть там наступний код:

<?php get_sidebar(); ?>

Замініть знайдений код на наступний:

<?php $sidebar = get_post_meta($post->ID, "sidebar", true);
get_sidebar($sidebar);
?>

Тепер ви можете відкрити в редакторі будь-який запис або сторінку (або створити новий). Все, що потрібно зробити – це додати нове довільне поле з ім'ям.sidebar" і значенням, яке міститиме назву шаблону вашого кастомного сайдбара. Наприклад, якщо ви впишіть "wpbpage", то в цьому записі або сторінці як сайдбар буде відображатися файл sidebar-wpbpage.php.

Підказка: якщо ви не бачите Довільні поля у редакторі, зайдіть у Налаштування екрану у верхньому правому куті та виберіть там цю опцію.

Як відображати різні сайдбари для окремих записів та сторінок

Щоб це спрацювало, ви повинні перед цим завантажити готовий файл вашого сайдбара на сайт, а потім викликати його через Довільне поле, як описано вище. Цей спосіб досить часто використовується у великих онлайн журналах та блогах, де багато різних типів записів, і в кожній із них свій сайдбар. Найпростіший спосіб змінити стандартний сайдбар – скопіювати оригінальний файл sidebar.php, дати файлу інше ім'я та вносити свої правки до коду.

Сподіваюся, вам знадобиться цей маленький трюк із кастомними сайдбарами. Якщо ви знаєте інший спосіб індивідуального налаштування сайдбарів на окремих записах, поділіться з нами в коментарях.

Джерело: WPBeginner
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, який спеціалізується на створенні сайтів на WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 22

skills_web:

Дякую, дуже корисний хак. Якщо, можна, поясніть, як поправити цей глюк у дискусі. Це не лише на вордпресо, а скрізь.

WordPresso:

Дивний глюк спробуємо розібратися. Для сторінок тега чи рубрики цей трюк не підходить, т.к. там нікуди вказувати довільне поле. Можна відредагувати файл archive.php і теж замінити там код виклику сайдбару, але тоді кастомний сайдбар відображатиметься той самий на сторінках всіх рубрик і міток.

skills_web:

А якщо не в сайдбарі, а, наприклад, у футері на певній сторінці тега, щоб на інших сторінках пагінації текст не дублювався. Ну це так "їжа" для майбутніх ваших чудових постів.

Oksana Kutsenko:

Ви як завжди на висоті! Саме те, що треба. Молодці так тримати. Спробую обов'язково!

Денис Маркевич:

Для тих хто як я не любить працювати з кодом рекомендую плагін WooSidebars від Woodojo - http://www.woothemes.com/woodojo/
Все просто налаштовується, проблем у роботі немає.

Іван:

який плагін використовували, на початку посту повідомлення посту на передплату вк?

WordPresso:

Це не плагін. Цей блок прикручений вручну.

інформація:

Дуже цікаво, але чи можна застосувати шаблон автоматично для категорії та її записів без використання довільних полів?

WordPresso:

Я думаю, це буде простіше реалізувати за допомогою типів користувача записів (Custom Post Types). Дивіться останній наш урок.

sashic:

Дякую, цікава стаття!

олеся:

скажіть, будь ласка, як вивести напр. sidebar 2, тільки в усіх постах, щоб його не було ні на головній, ні в рубриках (а всього сидібар напр. 3 штуки)

WordPresso:

Перечитайте уважно ще раз цей урок, тут якраз про це йдеться.

Теодор:

у мене є два файли шаблону сайдбару - sidebar.php і sidebar1.php я хочу, щоб у всі записи категорії id=20 виводився sidebar1.php, а в решту sidebar.php можна це зробити?

WPcafe.org:

Якщо немає бажання копатися з кодом, є купа готових плагінів для цього. Пошукайте за запитом 'custom sidebars'

Тетяна:

Добрий день. Зіткнулася з такою самою проблемою, я хочу на сайті зробити 2 сайдбари, в одному платні продукти, в другому — безкоштовні. Сайт mirinfokursov.ru, там видно задум - посилання на сайт видаліть, додала, щоб подивилися або комент видаліть і на ел. пошту.
Але оскільки там два самотніх віджети рубрик, то весь текст потрапляє і туди, і туди.
Скажіть, будь ласка, взагалі якось змінити, щоб різні чи одинокі назви рубрик, але чи різні наповнення записів, щоб вони відрізнялися?
Завчасно дякую за відповідь. Дякую

Павло:

Автор, добрий день!

З розвитком сайту виникла проблема.
Довго шукав щось схоже, але знайти так і не зміг. Тепер опишу у чому суть.

Є сайт присвячений автозвуку. Нещодавно я захотів додати на сайт тематику, що зовсім не відноситься до даної, отже виникла потреба у створенні рубрики іншого напрямку. (З цим я розібрався) Тепер опишу на прикладі:
було:
(Рубрики)
-Автозвук
- шви
- гу
- і т.д.
стало:
-Автозвук
- шви
- гу
- і т.д.
-Смарт
- 451
- 450
- і т.д.

Створив, додаткову головну рубрику та підрубрики, в меню поставив посилання на виведення даних категорій, щоб користувач при натисканні на «-451» виділив лише пости, що відносяться до «-451». Це також сталося.

Тепер проблема: при натисканні на рубрику «-451» відкриваються пости пов'язані з цією рубрикою, але сторінка на якій вона відкривається має початкову структуру, яку я робив під автозвук. (тобто пропадають рубрики, які стосуються «смарт». Я розумію, звідки ростуть ноги, але зробити з цим нічого не можу, в налаштуваннях ми вказуємо сторінку для виведення рубрик.

Питання: чи можна зробити дві різні сторінки для виведення різних рубрик, з різними віджетами та структурою, якщо можна пояснити як, заздалегідь дякую!!!!!

WPcafe.org:

За виведення рубрик відповідає шаблон archive.php. Можна спробувати створити його дубль зі своєю структурою, віджетами та меню. Як це реалізувати на практиці — добре питання, з таким ми не стикалися. Але є безліч тем, де вже спочатку реалізовано те, що ви хочете.

Павло:

А якщо застосовувати метод написаний у цій статті лише для сайд бару, чи вийде? Тему вже давно підібрав, і все від неї залежить, тому цей варіант відпадає. і якщо застосовувати цей метод то для пiдрубрик доведеться його записувати? Чи можна лише для батьківської прописати це?

WPcafe.org:

Сумніваюся, що цей метод можна застосувати до архівної сторінки. Але ж можна спробувати!

Євген:

Здравствуйте.
Цікавить таке: чи можливо лише для однієї конкретної категорії та всіх її статей показувати окремий сайдбар?
Пробував в archive.php різні варіанти через:
if ( is_category('2') ) { include 'sidebars/sb-recipes.php'; }»…. завжди показує сайдбар тільки для категорії, але не для статей. вручну вказувати ID статей не варіант, т.к. статей у цій категорії тисячі…. Чи є універсальний код, скажімо типу: якщо категорія 2 + всі статті, що їй належать —> підключаємо сайдбар2.php
(плагіни не цікавлять!)
Заранее спасибо!

WPcafe.org:

Такого універсального коду немає, простіше використовувати готові плагіни для цих цілей.

Юрій:

Дякую. Мені цей спосіб здався дуже цікавим!
Всі чомусь пропонують через плагіни….

Додати коментар або відгук