Возникла необходимость сделать для каждой страницы совершенно разный сайдбар. Конечно для не гуру в wordpress и php задача оказалась не очень простой. И её решение через гугл мне найти не удалось. Натолкнулся совершенно случайно, искав решение другой проблемы.
Это и побудило меня написать этот пост. В первую очередь для себя, если мне ещё раз придётся заниматься этой «ерундой», то уже не потребуется искать решение, достаточно будет заглянуть к себе на блог. Ну и конечно для пользователей, в надежде, что мой пост будет более релевантным для ПС и они его с лёгкостью найдут.
И так, для решение нашей задачи для начала создадим файл желаемого сайдбара и назовем его sidebar-seo1.php и поместим в каталог с шаблоном. Вместо seo1 можно использовать любое название, это будет нашим значением.
Во всех файлах шаблона находим стандартный вызов сайдбара:
<?php get_sidebar(); ?>
и заменяем его на:
<?php $sidebar = get_post_meta($post->ID, "sidebar", true); get_sidebar($sidebar); ?>
Теперь у нас все готово. В записях или страницах где вы хотите, чтобы отображался sidebar-seo1.php, нужно в произвольном поле, добавить новое поле: sidebar со значением: seo1 и если было все сделано правильно, то сайдбар у вас будет отличаться от основного sidebar.php. Всё оказалось очень просто. Таким способом для каждой страницы и записи в wordpress, можно использовать свой сайдбар.