Как вставить посты в страницу?
Таким, мягко говоря, странным вопросом новичики довольно часто ставят в тупик знатоков WP. С опытом приходит понимание того, что посты «вставляются» в рубрики, что страницы существуют сами по себе и предназначены совсем для других целей. Но порой понимание приходит уже после того, как проработана концепция сайта, и уже поздно что-то менять.
Из такой ситуации есть минимум два выхода:
1. все-таки использовать рубрики, а для «вступительной части» задействовать поле описания рубрики, благо есть плагины, обеспечивающие его визуальное редактирование;
2. делать индивидуальные шаблоны страниц, а в них организовывать вывод постов, используя query_posts() или get_posts().
Первый метод идеологически более правильный, но требует пересмотра структуры сайта. Второй не так прост, особенно для новичков.
Для облегчения их (и не только их) жизни я написал плагин posts_on_page. Фактически это реализация ин-лайн вызова get_posts() с циклом вывода результата запросов, использующая shortcode — механизм, появившийся в версии 2.5 и использованный там для реализации галереи.
Использование. В текст страницы (или поста) нужно вставить нечто похожее на
[get_posts category="4" numberposts="-1" show_content='1']
Все параметы передаются фукнции get_posts() и, следовательно, полностью соответствуют параметрам этой функции. За исключением двух, используемых самим плагином:
show_content — при использовании встроенного вывода показывать не только заголовки, но и контент с учетом тега <!—more—>;
template — имя файла-шаблона, лежащего в папке Темы, который будет использован для вывода списка постов. В случае, если этот параметр присутсвует, внутренний вывод будет заменен выводом через этот файл. Фактически в нем должно быть то, что обычно пишут внутри Цикла (Loop).
Внимание! Не рекомендуется ставить плагин на сайтах, где Админ не сильно доверяет редакторам и авторам. Если же это необходимо, то в целях безопасности рекомендую отключить возможность использования внешнего шаблона, изменив внутри плагина значение переменной $pro с true на false.
08/11/2008 Версия 1.2b Немного изменён алгоритм обработки <!—more—>.
11/11/2008 Версия 1.3b Добавлен параметр more_text, аналогичный первому параметру функции the_content(). Если more_text=», то ссылки в конце текста не будет.
08/02/2015 Версия 1.4. Добавлено apply_filters(‘the_content’)
20/02/2017 Версия 1.5. id контейнера заменен на class; учтено появление механизма дочерних тем.
25/02/2017 Версия 1.6 BugFix
Добрый день!Не удается подключить темплейт! Можете детальнее написать? спасибо.
1. В директории Темы создать php-файл шаблона для вывода поста.
2. В шорткод добавить параметр template=’имя_файла’
В шаблоне можно использовать все функции, которые обычно используются в шаблонах, например, the_title(), the_permalink() и т.д. Функция the_post() не нужна, т.к. цикл организован снаружи этого шаблона.
А как выводить еще и миниатюру с помощью данного плагина?
Использовать режим «pro» — подключить темплейт, в котором имеется вывод миниатюры поста.
Спасибо за ваш плагин. Он помог мне вывести одну из рубрик в статическую страницу, НО. Как сделать, чтобы в отображаемых постах учитывался перенос строки? Сейчас посты выводятся сплошняком, игнорируются переносы внутри поста
И какой смысл выводить рубрику на статической странице, если у рубрики есть свой вывод? Только лишние приключения.
Судя по всему, нужно добавить прогон сквозь фильтр ‘the_content’.
Добавил. Актуальная версия 1.4. Не проверял.
Понял, что можно при помощи include, но как их шорткодом выводить?
Как-то так
[get_posts include=42]