Вывод записей только из тех рубрик, которые вам нужны и на тех страницах в WordPress, где это необходимо — без правки шаблона и создания страниц с PHP кодом
- Суббота, 20 сентября 2008, 1:37
- HiTech и софт, Новости
- 675 Просмотр (ов)
- 3 коммент.
Недавно я задался разделить записи по рубрикам на своем сайте. Первая задача была вынести отдельно все кулинарные рецепты на страницу «Готовим дома — вкусные рецепты».
Так проще искать рецепты и удобнее просматривать не просто заголовки, а уже готовые записи.
Еще было условие, чтобы не править файлы шаблона или не создавать произвольные страницы с кодом так, как советуют многие, а просто создать страницу или пост стандартным редактором WordPress и вставить туда необходимый код. Так же, я думаю, можно применять этот код для вывода на любой странице после или перед материалом того поста, который вы зададите.
Как это сделать?
Перерыл много информации, читал форумы, блоги, задавал вопросы... И никак не мог сделать именно так, как хотел.
Как заставить работать PHP код в тексте записи? Я стал искать...
Нашел решение в виде плагина Inline PHP, который интерпретировал конструкцию [ exec ] [ /exec ] как PHP код. Попробовал — работает!
Мне нравится!
Второй этап это собственно вывод.
Функцию вывода записей я нашел тут, но самое интересное, что у меня не работал постраничный вывод. query_posts(”cat=3&showposts=10&paged=” . $paged);
не реагировал на pagenavi, он не получал от нее переменную $paged, эта переменная терялась.
Дело в том, что если вставлять непосредственно в шаблон, то работает, а в запись, то не работает — второй цикл! На странице используется цикл и он все ломает. Ладно думаю я, но переменную всё равно можно ведь получить!
Полез я в КОДЕКС, искал, искал и нашел! Есть такая функция get_query_var('paged'), которая возвращает номер страницы.
Я присвоил $paged значение, которое возвращает функция такая-то. И все ЗАРАБОТАЛО!
Теперь и записи выводит, и навигация есть!
Далее описываю всю свою конструкцию:
$paged = get_query_var('paged'); query_posts('cat=3&paged='.$paged);
Описание переменных:
cat=3 — номер категории, посмотреть можно в «Управление>Категории»;
showposts=10 — количество выводимых постов, можно опустить этот параметр и тогда выводится: будет столько постов сколько установлено в настройке «Управление>Чтение»;
paged= $paged — страница с которой выводить записи, необходимо для навигации по страницам;
get_query_var('paged') — возвращает номер страницы.
Посмотрите похожие публикации...
• Анимация в GIMP есть! Как создавать анимированные gif изображения • Тормоза и мощь WordPress - как я победил тормоза этого движка, увеличение скорости работы • WordPress — легко и удобно. Маленькая заметочка про это • Яша соизволил нас посетить! Особенности Яндекс сканирования... • Отличная программа для упорядочивания и редактирования фотографий - PICASA от Google для Windows • Как устанавливать RPM пакеты в UBUNTU •















Спасибо, Ваш пост очень помог! Теперь навигация работает чётко
Итог (проверено на WP3, странице page с шаблоном для рубрики (категории)):
< ?phpquery_posts ($query_string.'');
query_posts ('cat=НОМЕР&paged='.$paged);
?>
< ?php if (have_posts ()) : while (have_posts ()) : the_post (); ?>
КОД ПОСТА
< ?php endwhile; ?>
< ?php else : ?>
НЕТ ПОСТОВ
< ?php endif; ?>
< ?php wp_pagenavi (); ?>
Это решение задачи «Как вывести посты определённой категории на отдельной странице page, сохранив навигацию и количество записей по умолчанию».
abloko, спасибо как говорится за свежее решение! Положу в копилку, пригодится!