- Различные возможности вывода записей на странице WordPress
- Как осуществить вывод записей из одной категории на странице другой категории при помощи кода
- Featured Posts with thumbnails
- Posts per Cat
- Content Views
- Как вывести посты по рубрикам на отдельной странице в WordPress
- Создание шаблона страницы
- Задача 1. Вывести рубрики или отдельную рубрику на странице в WordPress.
- Задача 2. Как вывести записи из рубрик на страницу в WordPress.
- Используем плагины
- Как вывести ОДИН пост из категории в WordPress?
- get_posts() WP 1.2.1
- Возвращает
- Шаблон использования
- Использование
- Аргументы параметра $args
- Примеры
- #1 Выведем записи из рубрики
- #2 Вывод постов с отступом
- #3 Вывод постов с отступом, без нарушения основного цикла.
- #4 Возможность использовать специальные функции Цикла ВП
- #5 Последние посты отсортированные по заголовку
- #6 Случайные посты
- #7 Получить все прикрепленные файлы
- #8 Прикрепленные файлы определенного поста
- #9 Последние записи из той же рубрики
- Заметки
Различные возможности вывода записей на странице WordPress
Время на чтение: 4 минуты
По умолчанию движок WordPress выводит на сайте записи, которые были добавлены позже всего — последние статьи, посты и заметки. Для блога это весьма удобно, но не всегда вывод последних записей подходит для определенных целей.
К примеру, если у вас блог-инструкция и вы хотите научить посетителей чему-либо. Чтобы это сделать, необходимо провести пользователя от начала и до конца, то есть начать с легкого и постепенно погружать его во все премудрости своего дела. Если на главной будет активирован вывод последних статей, то новые юзеры запутаются, и быстро испугаются предстоящих сложностей обучения!
Если у вас аналогичный обучающий проект на движке WordPress, и вы хотите чтобы на главной не было списка последних записей, а красовались только посты из определенной рубрики, тогда эта статья будет полезна для вас.
Вы узнаете о всех возможных методах настройки публикации постов из выбранной категории на странице.
Как осуществить вывод записей из одной категории на странице другой категории при помощи кода
WordPress имеет массу настроек. Необязательно настраивать вывод постов на главной странице — вы можете сделать это в определенной части сайта. Порой необходимо, чтобы в одной рубрики значились записи из другой. Чтобы это осуществить вам предстоит влезть в код вашего шаблона WordPress.
Найдите файл category.php (в некоторых темах WordPress он называется archive.php). Он как раз отвечает за отображение информации на определенной странице выбранной категории. Если планируете настроить главную страницу, тогда вам предстоит отредактировать файл index.php (иногда в темах WordPress его именуют content.php).
В указанных файлах есть отрезок кода, который отвечает за список записей на странице. Чтобы вывести заданные вами рубрики на страницу, вам предстоит внести изменения в код между
а точнее добавить строку кода перед тегом while. Найдите строчку такого вида
Именно она поможет вывести записи выбранной вами рубрики на странице. Цифра 2 в этом коде — это ID категории. Если хотите сменить ее, тогда просто смените цифру на ID другой рубрики. Либо пропишите через запятую сразу несколько разделов, вывод которых вы хотите осуществить.
Это самый простой способ, как вывести записи не последних постов со всех или только одной категории, а из указанной вами рубрики. Однако, в разных шаблонах есть свои нюансы, потому такой метод для вас может и не подойти. Есть облегченный способ, как сделать вывод рубрики в указанном месте — воспользуйтесь специальным плагином WordPress.
Featured Posts with thumbnails
С этим модулем WordPress вы сможете не только настроить вывод рубрики, но и создать привлекательные блоки с определенными записями. Эти блоки можно будет украсить по своему усмотрению, и добавить миниатюры изображений для записей.
Плагин Featured Posts with thumbnails предоставляется бесплатно и работает со всеми версиями движка Вордпресс. С ним вы сможете настроить вывод последних постов, либо задать категории, которые необходимо вывести в блоке. Модуль позволяет создавать блоки с определенным названием, заданным количество записей на странице и выбранным размером миниатюр изображений. Огромное преимущество плагина в том, что вы можете не только настроить вывод категории на странице, но и создать собственный «микс» статей, добавляя их по отдельности.
Posts per Cat
Еще один простой и полезный плагин — Posts per Cat, который поможет вам быстро настроить вывод последних записей указанной рубрики в выбранной части сайта. Кроме того, вы сможете значительно сэкономить визуальное место на странице, так как Posts per Cat позволяет выводить посты в виде нескольких колонок.
Возможности модуля Posts per Cat:
- отображение записей в одной или нескольких колонках (до 4);
- в настройках можно указать ID рубрики, которые вы хотите добавить в блок, и которую вы хотите исключить;
- записи можно сортировать по названиям и другим параметрам;
- можно в превью записи добавить информацию о посте (отобразить количество комментариев, добавить миниатюру изображения, вводный абзац и другое);
- стиль блоков можно настроить при помощи CSS;
- модуль дружит с поисковиками — оптимизирует информацию для ПС-машин.
Content Views
Этот плагин содержит очень много функций. Помимо вывода определенных категорий, вы сможете настроить отображение записей по выбранным тегам, авторам и другим критериям. Дополнение обеспечит создание нескольких колонок, которые можно оформить как угодно. Кроме того, при помощи данного модуля можно изменить меню навигации.
И помните, что вы делаете это (настраиваете вывод записей) не ради красоты, а ради повышения юзабильности вашего блога. Только тот сайт станет успешным, который понятен и интересен посетителям!
Источник
Как вывести посты по рубрикам на отдельной странице в WordPress
Продолжаем рассматривать вопросы кастомизации рубрик. В этой статье мы научимся работать не только с выводом данных самих категорий, но и записей которые к ним привязаны.
Суть задачи – это вывести названия рубрик или отдельной рубрики на странице WordPress. Возникает вполне логичный вопрос для чего это нужно, ведь есть шаблон категории? Все правильно, но с точки зрения seo оптимизации шаблон категории не очень подходит для продвижения рубрик, его можно допилить с помощью произвольных полей, но можно использовать альтернативный подход – это вывод записей категории на странице WordPress.
Чем рубрика отличается от страницы? В первую очередь – это наличие возможности задать seo теги, такие как title и description даже при подключении бесплатных версий seo плагинов. Во-вторых – это возможность добавить описание с форматированием текста, привязать картинку. Все это также можно сделать на странице категории, но в данной статье мы рассмотрим пример использования шаблона страниц для этих целей.
Создание шаблона страницы
Для начала вам нужно создать шаблон страницы, который мы будем использовать для вывода наших рубрик.
Для этого нужно зайти в папку с вашей темой по адресу: wp-content/themes/your_theme/. Для этого можно воспользоваться либо ftp клиентом, либо же панелью хостинга. Если вы новичок лучше перед началом работ сделайте бэкап сайта.
1. В корневой папке темы создаем файл, например category-page.php.
2. В ней же находим файл page.php и копируем его содержимое в файл category-page.php. Я использую дефолтную тему twentynineteen, и буду показывать на ее примере, вам же нужно учитывать html разметку вашего шаблона и копировать ваш код из файла page.php, внося изменения которые я покажу ниже.
3. Делаем из файла category-page.php шаблон страницы с помощью следующего кода.
4. Сохраняем. Идем в админку сайта в раздел «Страницы» — «Добавить новую». Указываем заголовок страницы, и справа в блоках настройки выбираем вкладку «Атрибуты страницы». В ней из выпадающего списка с названием «Шаблон», выбираем название шаблона которое мы задавали выше.
5. Сохраняем. Теперь можно работать с шаблоном и задавать код для вывода нужной нам информации на этой странице.
Задача 1. Вывести рубрики или отдельную рубрику на странице в WordPress.
Для этих целей мы будем использовать функцию get_categories(). Дополнительно мы зададим аргументы для этой функции. Вы в свою очередь можете более детально ознакомиться с этой функцией в этой статье.
Здесь указан код для работы со всеми категориями, присутствующими на сайте. Если вы хотите ограничить этот параметр и вывести одну рубрику, то в поле ‘include’ приведенного выше кода задайте id рубрики. Узнать его можно перейдя в админке в раздел «Записи» — «Рубрики», справа нажимаем на нужную рубрику и переходим на страницу ее редактирования. Сверху, в строке браузера вы сможете увидеть ее id.
Переходим в файл category-page.php и редактируем его содержимое следующим образом.
Как видно, вверху файла добавлен вызов функции get_categories() с аргументами, а ниже цикл перебора категорий подходящих под заданные нами параметры.
У вас должен получиться примерно такой результат.
Задача 2. Как вывести записи из рубрик на страницу в WordPress.
Для решения этой задачи будет использоваться класс WP_Query<>. Для вывода постов рубрики также задаем список аргументов, которые укажут параметры выборки. Опять открываем наш файл category-page.php и добавляем в него код для вывода записей.
Теперь нужно задать какую информацию о посте нужно выводить, обычно это ссылка с названием поста. Финальный код для вывода записей по рубрикам.
Вот результат работы данного кода.
Чтобы вывести записи из определенной категории достаточно указать значение id для категории в аргументах к функции get_categories().
Аналогично данный код можно использовать для вывода категорий с постами и на главной странице сайта на WordPress. Только редактировать нужно будет файл index.php, который находиться в корневой папке вашей темы.
Используем плагины
Если вы не хотите создавать шаблоны и работать с кодом, тогда вы можете поставить один из многих плагинов с репозитория WordPress, которые помогут вам реализовать приведенный выше функционал. Есть целый ряд готовых решений, которые отличаются дизайном, количеством настроек и немного функционалом, например: List category posts, The Post Grid, Post Grid, WP Show Posts.
Для примера я покажу, как можно использовать плагин WP Show Posts.
1. Идем в админку, меню «Плагины» — «Добавить новый». Ищем в строке поиска название плагина «WP Show Posts». Устанавливаем и активируем его.
2. Слева в меню у вас появиться пункт «WP Show Posts». Переходим в него.
3. Сверху нажимаем «Add new».
4. На первой вкладке настроек можно выбрать: тип записи, таксономию (например, после выбора категории появиться список созданных вами категорий), количество постов и чекбокс для включения пагинации.
5. Вторая вкладка это выбор разметки, где можно задать количество колонок и отступы между ними.
6. Далее идут настройки изображений, и вывода контента записи, где вы можете задать длину краткого описания и тег для ссылки заголовка поста.
7. Вкладка meta. Позволяет указать выводить ли автора, дату, категорию и количество комментариев к каждому посту.
8. More settings включают в себя настройки по сортировке данных для вывода.
Задаем заголовок, указываем настройки и жмем справа опубликовать. Копируем шорткод справа в блоке «Usage».
После этого переходим в раздел «Страницы» — «Добавить новую». Указываем ее название, а в редакторе Gutenberg выбираем блок Шорткод, куда вставляем скопированный ранее код. Сохраняете и проверяете результат работы.
На этом сегодня все. Я постарался показать, как сделать страницу рубрикой WordPress плагином или же без плагинов с помощью кода. Надеюсь, материал был для вас полезен.
Источник
Как вывести ОДИН пост из категории в WordPress?
Может кто подскажет, где я туплю.
have_posts($post_id) — вот это вообще откуда? и вот это the_post($post_id)
Эти функции не принимают никаких аргументов.
в get_the_category(); нужно передавать ID поста. По умолчанию используется ID текущего поста в цикле.
next_post_link и previous_post_link Используются только на страницах единичной записи. Любые функции пагинации и навигации работают только с основным запросом (global $wp_query).
showposts устарело, используйте posts_per_page
Объясните контекст задачи. На какой странице вы хотите получить пост и как вы его хотите выбрать.
А к чему такие трудности вообще? Если вы хотите вывести пост, используйте шаблон single.php или шаблон для нужного post-type. Там напишите ОБЫЧНЫЙ базовый цикл БЕЗ всяких лишних аргументов, WP сам выведет нужный пост. А для навигации вместо next_post_link и previous_post_link используйте, соответственно get_next_post_link() и get_previous_post_link() . В них можно задать логический параметр $in_same_term для вывода ссылки на пост из ТОЙ ЖЕ рубрики.
Да, действительно have_posts($post_id) не работает, исправил. Получился вот такой вариант
Вроде работает как надо.
А что мне надо было, у меня есть посты которые, каждый из которых относится к одной из четырёх категорий. Когда открывается страница с полным текстом, у меня должна быть реализована навигация по постам из данной категории. Навигация простая, из кнопок Следующая и Предыдущая, и соответственно страница должна обновляться на полный текст другого поста.
Да. и убрал showposts
Источник
get_posts() WP 1.2.1
Получает записи (посты, страницы, вложения) из базы данных по указанным критериям. Можно выбрать любые посты и отсортировать их как угодно.
Это обертка для класса WP_Query, т.е. в функцию можно передать такие же параметры.
У этой функции есть предустановленные параметры. Иногда их нужно изменить, чтобы они не мешали. Предустановленные параметры:
- post_type = post — если мы указываем вывод таксономии для типа записи отличного от post, то параметр post_type нужно изменить — он по умолчанию равен post .
- numberposts = 5 — если мы забудем изменить параметр numberposts , то долго можем недоумевать почему выводится только 5 записей вместо нужных 20.
- suppress_filters = true — этот параметр отключает работу некоторых фильтров (хуков). Читать подробнее.
get_posts() — это аналог query_posts(). Отличается тем, что get_posts() не вмешивается в глобальный запрос WP, а создает отдельный экземпляр класса WP_Query . Подробнее читайте здесь.
Возвращает
Пустой массив, если не удалось получить записи.
Массив WP_Post объектов (записей). Каждый объект в массиве выглядит так:
Шаблон использования
Использование
Аргументы параметра $args
Эта функция является оберткой для WP_Query, поэтому она может принимать такие же параметры.
- numberposts (число)
- posts_per_page (число)
- offset (число)
- category (число/строка/массив)
- category_name (строка)
- tag (строка)
- include (строка/число/массив)
- exclude (строка/число)
- meta_key и meta_value (строка)
- meta_query (массив)
- date_query (массив)
- post_type (строка/массив)
- post_mime_type (строка/массив)
- post_status (строка)
- post_parent (число)
- nopaging (логический)
- orderby (строка)
- order (строка)
- suppress_filters (true/false)
numberposts(число) posts_per_page(число) Количество выводимых постов. Установить на 0 , чтобы ограничить вывод максимальным числом постов на страницу (устанавливается в настройках ВП) или поставить -1 чтобы убрать ограничения вывода (LIMIT).
По умолчанию: 5 offset(число) Отступ от первого поста (записи). category(число/строка/массив)
Укажите ID категории из которой нужно получить посты. Можно указать ID со знаком минус -3 , тогда эта категория будет исключена (будут получены все записи, кроме записей из категории 3). Можно указать несколько ID через запятую в виде строки 3,5,12 или -3,-5,12 ).
В значении нужно передавать ID, а не название категории.
Смотрите также описание параметра cat у WP_Query .
category_name(строка) Показывать посты только из этой категории (указывается название или альтернативное имя(slug) категории).
По умолчанию: » tag(строка) Получить записи имеющие указанные в этом параметре метки. Нужно указывать альтернативное имя (slug) метки. Если указать несколько имен (меток) через запятую, то будут получены записи соответствующие любой метке, а если разделить пробелами, то будут получены записи имеющие все указанные метки.
По умолчанию: » include(строка/число/массив)
ID постов, которые нужно получить. Если указывается строка, то ID нужно разделять запятыми или пробелами. Пример, получит 6 постов: ‘45,63,78,94,128,140’.
Важно: Указав этот параметр, бессмысленно указывать параметры posts_per_page , offset , category , exclude , meta_key , meta_value и post_parent .
По умолчанию: »
exclude(строка/число) ID постов которые нужно исключить из выборки, указывать через запятую или пробел.
По умолчанию: » meta_key и meta_value(строка)
Получить посты имеющие указанное произвольное поле (meta_key) со значением (meta_value).
Можно указать meta_key и meta_value , тогда будут получены посты, у которых есть указанное метаполе и значение которого равно указанному значение.
Или можно указать только meta_key , тогда будут получены все записи у которых это метаполе есть и не важно какое там значение.
meta_query(массив) Выборка записей по произвольным полям. Подробнее см. в описании WP_Query (meta_query).
По умолчанию: [] date_query(массив) Выборка записей по датам. Подробнее см. в описании WP_Query (date_query).
По умолчанию: [] post_type(строка/массив)
Какого типа посты нужно получать, может быть:
- any — все типы, кроме revision и типов у которых указан параметр exclude_from_search=true .
attachment — прикрепленные записи.
по умолчанию WP_Query ставит статус ‘post_status’=>’publish’ , а вложения имеют статус ‘post_status’=>’inherit’ , поэтому чтобы вывести вложения нужно еще изменить параметр post_status на ‘inherit’ или ‘any’.
По умолчанию: ‘post’
Какого типа вложения нужно получить. Можно использовать, когда параметр post_type = attachment .
- image/jpeg
- image/png
- image/gif
- image — для любых картинок
- audio/mpeg
- application/pdf
- application/zip
Вместо одно миме типа можно указать несколько в массиве. Полный список миме типов смотрите здесь.
Статус записи. Можно передать несколько статусов через запятую. Может принимать:
- publish — опубликовано
- private — личная запись
- draft — черновик
- future — запланировано
- pending — на модерации
- inherit — вложение, любое вложение получает этот статус. Ставиться автоматически, при $post_type=’attachment’
- any — все статусы
По умолчанию: publish
post_parent(число) Показать только дочерние записи к указанному ID.
По умолчанию: 0 nopaging(логический) Включить или отключить пагинацию, если стоит true параметр $numberposts игнорируется.
По умолчанию: false orderby(строка)
Сортировать результат по указанным полям. Можно указывать несколько полей сортировки, через пробел. Допустимые поля:
- author — сортировать по ID авторов.
- content — сортировать по контенту.
- date — сортировать по дате создания записи.
- ID — сортировать по ID записи. Указываются ID в массиве или через запятую.
- menu_order — сортировать по полю menu_order . Используется для постоянных страниц и вложений (картинки, файлы и т.п.).
- mime_type — сортировать по MIME типу. Используется для вложений.
- modified — сортировать по дате изменения.
- name — сортировать по альтернативному имени (slug).
- rand — случайная сортировка. Создает повышенную нагрузку на БД.
- status — сортировать по статусу (черновик, опубликовано и т.п.)
- title — сортировать по названию.
- parent — сортировать по ID родителя (parent ID).
- password — сортировать по паролю.
- type — сортировать по типу (пост, страница и т.д. ).
- comment_count — по количеству комментариев.
- meta_value — по значению указанного произвольного поля.
- post__in — учитывает порядок указанных ID в параметре include.
Префикс post_ у полей таблицы опускается для удобства. Например вместо date можно написать post_date , вместо content post_content и т.д.
По умолчанию: ‘date’
меню order(строка) В каком направлении упорядочить, указанное в параметре $orderby , поле:
ASC — по порядку (от меньшего к большему: а,б,в).
DESC — в обратном порядке (от большего к меньшему: в,б,а).
По умолчанию: ‘DESC’ suppress_filters(true/false)
При true (по умолчанию) пропускает все хуки изменения SQL запроса, такого типа posts_* или comment_feed_* .
Какие именно фильтры отключаются смотрите здесь.
В функциях WP_Query и query_posts() этот параметр отключен по умолчанию (равен false).
suppress_filters = true не виляет на работу фильтра pre_get_posts.
Такое отключение фильтров по умолчанию, может ввести в замешательство, если есть плагины влияющие на вывод записей, через фильтры SQL запроса, например WPML. В таких случаях suppress_filters нужно отключить.
По умолчанию: true
Примеры
#1 Выведем записи из рубрики
Допустим у нас в категориях есть рубрика «Статьи» (ярлык articles ) в которую добавляются записи ( post_type=post ). Нам нужно вывести 6 таких записей на произвольной странице.
#2 Вывод постов с отступом
Если у вас на главной выводится один, последний пост, а нужно вывести еще 5 предыдущих из категории 1, то можно использовать такой код:
#3 Вывод постов с отступом, без нарушения основного цикла.
Если была использована функция get_posts() и после нее нужно использовать стандартный цикл WordPress, то нужно сохранить глобальную переменную $post , делает это так:
#4 Возможность использовать специальные функции Цикла ВП
Стандартно в цикле основанном на get_posts() невозможно использовать, например, функцию the_content() или the_date() . Эта проблема решается функцией setup_postdata() которой нужно передать переменную $post :
Данные можно также получить через обращение к свойству объекта (объект->свойство_объекта). Например, для этого примера $post->ID будет равно ID поста, $post->post_content будет содержать контент записи. Свойство объекта это колонка таблицы БД posts. Название колонок можно посмотреть тут.
Не забывайте, что на экран данные выводятся через php оператор echo :
#5 Последние посты отсортированные по заголовку
Получим последние посты отсортированные по заголовку в алфавитном порядке. Следующий пример выведет дату, заголовок и цитату поста:
#6 Случайные посты
Получим 5 случайных постов, реализуется за счет параметра ‘orderby’ => ‘rand’ :
#7 Получить все прикрепленные файлы
Используется за пределами Цикла WordPress. Следующий код выведет заголовок, ссылку и цитату прикрепленного файла:
#8 Прикрепленные файлы определенного поста
Код нужно использовать внутри Цикла WordPress, где переменная $post->ID :
#9 Последние записи из той же рубрики
Выведем список последних записей текущей рубрики, в которой находится запись. При этом исключим текущую запись:
Заметки
С версии 2.6 изменен ряд передаваемых значений у параметра orderby — префикс post_ был удален, например, было post_title, стало просто title.
Хотите дешево купить просмотры в Инстаграме на видео или ТВ-трансляцию, но не знаете, где? Попробуйте посетить сайт Doctor SMM, где Вам будет предложена одна из самых низких цен по рунету на просмотры. Торопитесь, так как предложение действует ограниченное время! К тому же здесь Вы сможете очень быстро приобрести ресурс с оптимальным, конкретно для Вашей страницы, скоростным режимом. Развивайте аккаунт быстро и легко!
Источник