Wordpress В Качестве CMS или Небольшой Хак
13.12.2007 от
Андрей Зарубин
Wordpress’oм нынче мало кого удивишь. Особенно в блоггерской среде. Однако если посмотреть на нетрадиционное его использование в качестве CMS-движка для контентных сайтов, то тут у новичков обычно возникают определенные вопросы.
Как сделать так, чтобы на главной странице вместо последних постов в выдаче были только последние посты одной рубрики?
Как задавить ненужную (родительскую) рубрику в сайдбаре и запретить ее (и ее подрубрик) вывод?
Как сделать так, чтобы было 2 колонки с рубриками (справа и слева в сайдбарах), причем в каждой из них выводились только подрубрики определенной рубрики, а не все рубрики сразу?
Начну с начала. Данные в wordpresse хранятся в виде постов. Чтобы не заморачиваться лишний раз и создавать отдельные страницы (хотя можно вопрос решить и так), выход я выбрал такой: выводить посты исходя из их рубрики (category).
Чтобы не выводить посты какой-то категории (или нескольких категорий) в постах (или анонсах постов) нужно в index.php активной темы прописать следующую строку:
Где 32 это ID рубрики, посты которой нужно запретить к выводу. ID можно посмотреть в админке wordpress зайдя в Управление -> Рубрики. Знак минус перед ID говорит движку wordpress о том, что все посты рубрики с ID 32 выводить не нужно. Если вы не хотите выводить несколько рубрик, то нужно просто перечислить их через запятую, не забывая ставить перед каждым ID знак минуса:
В данном примере не будут выводиться посты из рубрик с ID равными 32, 33, 34. Для чего это может быть нужно? Например, в БД хранятся статьи и другая информация, а на главную страницу вы хотите выводить только статьи. Убрав все лишние рубрики, вы выводите только то, что вам нужно.
Далее, часто нужно чтобы в меню (в сайдбаре) выводились посты только одной рубрики или нескольких, но определяемых вами. По умолчанию туда выводятся вообще все рубрики. Для того, чтобы запретить вывод рубрик(и), нужно найти в sidebar.php строку кода где описывается вывод рубрик. Она должна располагаться ПОСЛЕ КОДА
и иметь примерно такой вид
Для запрет вывода рубрики с ID равным 32, нужно прописать в этой строке параметр exclude равный 32 (exclude=32). Выглядеть это будет так (при условии, что в строке нет других параметров):
Теперь в сайдбаре не будет выводиться рубрика с ID равным 32. Чтобы не выводить сразу несколько рубрик с разными ID, нужно просто перечислить из через запятую.
Признаюсь честно, в моей теме эта фича не работала, и чтобы запретить вывод рубрик в левом сайдбаре, мне пришлось лезь аж в widgets.php (это уже не тема, а движок wordpress) и вставлять там exclude, только тогда это заработало. Но в других темах работает и обычный метод.
Дальше мне нужно было, чтобы в третьей колонке выводился список постов одной рубрики. Я сделал это следующим образом:
В файл sidebar.php ДО КОДА
Вставил код вызова рубрик нужной мне рубрики
$posts_new = get_posts('category=33&numberposts=20');
foreach ($posts_new as $post_new) :
echo '
<li class="news_item"><a href="';
echo get_permalink($post_new->ID);
echo ‘”>’;
echo $post_new->post_title;
echo ‘</a></li>
<p>‘;
endforeach;
?>
Данный код выводит в сайдбаре 20 постов рубрики с ID равным 33. Также можно туда забить несколько ID и увеличить/уменьшить количество выводимых постов. Можно изменить формат и стили вывода по своему вкусу.
Надеюсь это кому-то пригодиться!
PS: Вся вышенаписанная информация была найдена на форумах посвященых wordpress, в частности forum.maxsite.org
Рубрики: wordpress |
Комментарии (10) »
azarubin.com