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 |
azarubin.com
13.12.2007 в 18:51
Спасибо, пригодится!
Я действительно новичок с WordPress’ом и многие вещи приходится искать через поисковики или ковырять код самому - что не очень интересно…
13.12.2007 в 18:56
Сам такой же
13.12.2007 в 20:07
хороший фак. Продолжение надеюсь будет?
13.12.2007 в 20:14
Все зависит от того, буду ли я еще мучать wordpress
13.12.2007 в 20:15
Действительно, полезная информация!
Очень пригодится в последующих web-проектах.А то думал, опять за Jooml’у взяться.
13.12.2007 в 20:19
На самом деле на том форуме, что я указал в постскриптуме, дофига полезной инфы по настройке вордпресса
24.01.2008 в 23:03
Здравствуйте,
у меня вопрос не совсем по теме, но очень важный для меня.
Помогите, пожалуйста, разобраться: как вывести на странице “Контакты” в wordpresse форму для связи так, чтобы она отражалась только на этой странице, а на других страницах ее не было?
Буду очень благодарна за помощь.
Людмила
25.01.2008 в 12:09
ludmila, напишите мне на мыло, указав в письме свою аську и мы чего-нибудь придумаем
23.05.2008 в 20:27
Как раз искал подобную инфу. Спасибо. Все практично!
11.08.2008 в 03:56
Отличная статья !
Так держать!