Вывод кастомных постов на странице шаблона


Содержание материала:

Вывод кастомного контента в блоге на примере темы Shapely

Имеем кастомный тип «mdsv_komplektuuschie», необходимо вывести его на странице блога для этого создаются следующие php файлы:

*/wp-content/themes/shapely/template-mdsv_komplektuuschie.php — шаблон страницы на которой будет произведен вывод кастомных записей;

*/wp-content/themes/shapely/template-parts/content-mdsv_komplektuuschie.php — отвечает за внешний вид каждого поста в сетке блога;

*/wp-content/themes/shapely/template-parts/layouts/blog-mdsv_komplektuuschie.php — отвечает за внешний вид сетки блога.

Код файла template-mdsv_komplektuuschie.php:

Код файла content-mdsv_komplektuuschie.php:

Код файла blog-mdsv_komplektuuschie.php:

После указания кастомного типа необходимо установить шаблон страницы в данном случае это шаблон с именем «Вывод Каталога» и наслаждаться результатом.

Вывод произвольных типов записей WordPress

Здравствуйте уважаемые читатели блога WP Developer. В статье «Добавление произвольного типа записей в WordPress» я рассказывал, что это такое такое, приводил пример стандартных типов записей и описывал процесс их создания. Но сам процесс создания не является конечным, т.к. записи потом нужно как то выводить на сайте. Как раз в этой статье я хотел бы показать Вам два способа вывода архива таких статей (без пагинации и с пагинацией) и показать, как выводить отдельную произвольную запись. Все манипуляции я буду производить в стандартной теме WordPress — twentyseventeen . Итак, поехали.

Вывод всех записей на одной странице (без пагинации)

Иногда требуется вывести архив произвольного типа записей на одной странице. Ну мало ли какие могут быть требования у заказчика. Вдруг ему понадобится именно такой вариант вывода. Для примера я создал новый тип записей Отзывы с идентификатором reviews . Сам процесс описывать не буду. Для этого Вы можете кликнуть по ссылке выше, где все подробно описано. Я лишь только визуально покажу, как это выглядит в меню (См. рисунок):

На следующем шаге в папке с Вашей темой нужно создать отдельный шаблон для вывода архива. Я назвал его reviews.php . Внутри этого шаблона прописываем следующий комментарий:

Увидев этот комментарий кто-то может уже догадался, что мы создаем отдельный шаблон страницы Worpdpress. Да, так и есть. В него также я добавил следующий код для получения и вывода самих отзывов:

Стилизацию я проводить не буду, поскольку нам важно понять сам процесс, а не увидеть внешний вид страницы.

Далее в админ-панели сайта мы уже непосредственно создаем саму страницу (я также назвал ее Отзывы ) и в блоке Свойства страницы выбираем только что созданный нами шаблон.

Готово. Теперь добавив страницу Отзывы в меню, перейдите на нее, и Вы сможете увидеть весь список добавленных отзывов.

Вывод постов в виде категории (с пагинацией)

Если Вам необходимо вывести список произвольного типа записей с пагинацией, т.е. как выводится любая из рубрик, то в папку с Вашей темой всего лишь нужно добавить новый файл со следующим названием — archive-<идентификатор_произвольного_типа_записей>.php . В моем случае этот файл будет называться так — archive-reviews.php . Далее в файл добавляете цикл вывода (уже без комментария Template Name: Отзывы ) и посты будут выводиться как категории — с пагинацией. Код может выглядеть так:

Как Вы заметили, мы уже не получаем посты при помощи класса WP_Query , в этом нет необходимости. WordPress сам поймет, к какому типу записей относится данный шаблон и выведет именно их.

Чтобы показать ссылку на новый тип записей на сайте, в меню я создал Произвольную ссылку следующего вида:

Теперь при переходе по данной ссылке у вас может появиться примерно такое сообщение — «Извините, но запрашиваемая Вами страница не найдена«. Данная проблема решается довольно простым способом. Нужно перейти в раздел Настройки->Постоянные ссылки и ничего не меняя нажать на кнопку Сохранить .

Вывод отдельной записи произвольного типа

Итак, мы выяснили как можно выводить архив произвольного типа записей с пагинацией и без нее. Теперь нам осталось вывести отдельный пост. В принципе, если Вас устраивает внешний вид страницы, которая в текущий момент выводит отдельный пост, то можете ничего и не создавать, с этим справится файл single.php . Если же Вы хотите изменить внешний вид нового типа записей, например, убрать сайдбар или вообще по другому стилизовать страницу, то нужно создать файл со следующим названием — single-<идентиикатор_произвольного_типа_записей>.php , и в нем уже прописать код для вывода поста с нужными стилями. В моем случае он будет называться так — single-reviews.php .

На этом все. Надеюсь статья была для Вас полезной. Всем удачи.

Как вывести записи произвольного типа на WordPress сайте

Напомню, что в прошлых записях я писал о том, что такое произвольные типы записей, как их использовать и как добавить произвольный тип записей в WordPress. Сегодня я расскажу, каким образом можно вывести записи произвольного типа на любой странице вашего WordPress сайта.

Топ-пост этого месяца:  Особенности взаимодействия React Router и Components возможные проблемы и их решение

Записи произвольного типа на отдельной странице

Чтобы показать список записей произвольного типа на отдельной странице, сначала нужно создать новый шаблон, в котором будут запрашиваться записи определенного типа, в данном случае — записи Аксессуары «acsessuar».

Шаблон архива для произвольного типа записей

Сначала создайте новый файл acsessuar.php и наполните его следующим содержимым

Страница для записей произвольного типа

Теперь необходимо создать новую страницу и применить для нее ранее созданный шаблон.

Выводим записи произвольного типа в любом месте блога

Также, показать любые записи можно в произвольном месте на сайте с помощью функции . Для этого вы можете использовать следующий код:

Вывод постов на странице, постраничная навигация

Прежде чем я покажу готовый код, давайте подробнее рассмотрим, что имеется ввиду в заголовке и когда это лучше применять.

Вывести посты на странице в WordPress — это значит создать шаблон страницы (page template) и забацать туда цикл, query_posts.

Для чего нужно такое вытворять? Рассмотрим несколько вариантов:

    представьте, что вам нужно вывести на одной странице записи сразу из нескольких категорий

Вообще можно скомбинировать любые условия, используя эту статью. Параметры, которые описаны для WP_Query также подойдут и для query_posts.

Теперь я думаю порядок действий вам понятен? Создаете шаблон страницы, пихаете наверх query_posts, потом цикл, потом постраничную навигацию…

Кстати о ней. Просто так она не будет работать. Как это исправить?

Пожалуй стоит описать порядок действий более подробно.

  1. Создать шаблон страницы.
  2. Определить номер текущей страницы.
  3. Использовать query_posts с необходимым набором аргументов, при этом не забыв включить в него номер текущей страницы.
  4. Добавить цикл.
  5. Добавить функцию постраничной навигации, например wp_pagenavi().

А теперь полностью готовый код:

Это конечно же обобщенный пример, поэтому не забудьте про get_header() и get_footer(), если они у вас используются.

Плагин постраничной навигации WP-PageNavi

В предыдущем примере я использовал функцию wp_pagenavi() . Она отвечает за постраничную навигацию и является составляющей частью плагина WP-PageNavi (русское название: Список страниц).

Если вы используете данный код как есть и при этом у вас не установлен WP-PageNavi, то вероятнее всего вы получите ошибку.

Плагин очень легко устанавливается через админку сайта и так же легко настраивается — так что для этих целей рекомендую использовать именно его.

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2020 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Awebdesign Blog

Сначала создадим кастомный тип записей (Custom Post Type), в functions.php добавляем:

Далее создадим внутри этого кастомного поста раздел Категории:

Обратите внимание, ОЧЕНЬ ВАЖНО! Если post_type равен «activity«, то taxonomy должен иметь ДРУГОЕ имя, например, во множественном числе «activities«. Иначе ничего работать не будет!

Теперь нам нужно создать шаблон для вывода категорий кастомных постов. Файл должен носить имя вида taxonomy-, то есть если название моей таксономи (категории) — activities, то файл должен называться taxonomy-activities (не taxonomy-activity!)

Сделали файл, нужно запустить в луп (цикл) вывода постов наши кастомные аргументы:

Ну а дальше обычный наш цикл вывода постов:

Создаем шаблоны страниц и постов в WordPress

Как вы могли понять из названия, сегодня я решил посвятить статью созданию шаблонов таксономий, с помощью которых можно делать индивидуальные настройки для каких-то отдельных страниц или записей вашего сайта на WordPress.

Сразу скажу, что делается это все при помощи PHP-кода, поэтому если вы очень поверхностно знакомы с этим языком программирования, то при работе и создании шаблонов страниц у вас могут возникнуть трудности.

Здесь же понадобятся базовые знания HTML и CSS, все же, мы создаем шаблоны страниц и постов, а следовательно они могут разительно отличаться не только по расположению элементов, но и по дизайну (допускается создание новых CSS-классов и их применение).

Итак, давайте начинать.

Шаблоны страниц и постов в WordPress

Чтобы вам было понятнее, что же они из себя представляют, я покажу вам на примере одного из моих сайтов. Чтобы изменить шаблон страницы или записи необходимо перейти в режим редактирования.

Как видите, здесь есть “Атрибуты страницы”, с помощью которых мы и можем поставить нужный шаблон. На данный момент там имеется Базовый шаблон, и несколько кастомных.

Первый, как вы могли догадаться, установлен в ВП по умолчанию. Три остальных же были добавлены моей темой.

При желании я могу удалить или добавить шаблоны страниц с помощью несложных манипуляций.

Что можно сделать при помощи шаблонов

Да абсолютно все. По своей сути шаблон – это PHP-файл, который содержит в себе программный код и HTML вместе с CSS.

Вы вольны сделать из этого все, что только захотите. Но надо сказать, что обычно эти самые файлы используются для каких-то незначительных изменений: увеличить ширину блока с контентом, изменить цвет каких-то элементов и т.д.

Вот так выглядит код самого простого шаблона страницы:

Он содержит в себе только хедер и футер, однако контента в нем нет, и чтобы это исправить туда нужно вставить php-код с определенной последовательностью скриптов.

Как правило, это стандартные переменные WordPress, которые отвечают за вывод информации с постов (post), страниц (page) или product (пользовательские типы записей).

Тут мы плавно подходим к опции Template Post Type , которая, собственно, и отвечает за принадлежность шаблона к тому или иному виду таксономии.

Как вы могли догадаться:

  • Post – записи
  • Page – страницы
  • Product – пользовательские типы постов (кастомные, добавляемые вручную или с помощью плагинов)

Вы можете добавить как одну из них, так и несколько – через запятую.

Топ-пост этого месяца:  AngularJS. Пользовательские фильтры в AngularJS

Делаем шаблоны страниц и записей при помощи PHP

Ну а теперь, в общем-то, можно переходить к непосредственному созданию шаблона страниц и записей в WordPress. Для этого нам необходимо создать php файлик в любом удобном месте нашего сайта.

В корне, или лучше всего в отдельной папке, которую можно использовать для хранения шаблонов страниц.

Название можно ставить произвольное. Важно, только, чтобы в содержимом такого файла, в самом начале был код с указанием, что это действительно шаблон таксономии. Для этого используем код:

В поле Template Name вы можете указать название, которое будет отображаться в окне “Атрибуты”. Также в этот код, как было указано в примере, можно добавить строчку Template Post Type , с помощью которой задать параметры (для каких именно таксономий будет этот шаблон.

По-умолчанию: только для страниц) Также, чтобы на выходе мы могли получить что-то кроме чистой белой страницы, мы можем указать функцию вызова статичных частей нашего сайта – хедера и футера (верхней и нижней части дизайна, которые, как правило, имеются в каждой теме).

Для этого мы прописываем соответствующие строки:

Теперь наш шаблон будет выглядеть куда более презентабельно. Однако какого-либо контента в нем не будет. Между футером и хедером необходимо добавить блок, который и будет отвечать за отображение контента.

Выглядеть это будет примерно так:

Как видите, здесь мы используем элементы языка гиперразметки – HTML. Вы можете отыграться по полной. И прописать тут с десяток-другой различных div`ов или любых других элементов.

Вы даже можете добавить статичный рекламный блок с помощью JS-скрипта. Он будет отображаться на всех страницах, которые будут использовать данный шаблон.

Заключение

Напомню, я вам показал лишь самый примитивный вариант, вкратце рассказав о том, что представляют из себя функции и какую роль они играют. В чем плюс шаблонов страниц, так это в том, что вы можете сделать из этого абсолютно все, что только пожелаете.

Нужно лишь, как я говорил, знать язык программирования php. Также нужно уметь работать с функциями WordPress, а также иметь понятие о HTML и CSS.

Полное руководство по пользовательским типам постов в WordPress

Дата публикации: 2020-03-14

От автора: Дни, когда WordPress был просто системой для блогов, прошли. Возможность расширения функционала с помощью плагинов и тем, группировка постов, структурирование данных по типам, а также появление в ядре WP Rest API привели к эволюционированию WordPress в полномасштабную систему управления контентом и платформу разработки.

За эти годы я успешно создал большое количество кастомных веб-приложений на новейших версиях WordPress, в которых по полной использовались кастомные типы постов. Примером может послужить сайт theme marketplace моего плагина для WordPress ProfilePress.

Если подробнее присмотреться к магазину тем по ссылке выше, можно заметить, что на нем используется кастомная система постраничной навигации на основе URL ссылок для следующей и предыдущей страниц. Т.е. можно создать свою систему постраничной навигации, которая отлично будет работать с запросами постов пользовательских типов.

Ну хватит долгих речей, перейдем к основной цели данного урока – изучению всех тонкостей пользовательских типов в WordPress.

Надеюсь, мы решим множество проблем, с которыми я лично столкнулся при работе с кастомными типами постов, а также рассмотрим другие крутые возможности.

Бесплатный курс «Основы создания тем WordPress»

Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц

Определение пользовательского типа постов

WordPress может хранить и отображать множество различных типов контента. Одна часть данного контента называется постом, хотя пост сам по себе является специфическим типом постов. «Все типы постов хранятся в одном месте, в таблице wp_posts базы данных, но посты различаются по колонке post_type»

Post type относится к различным структурированным данным, сгруппированным вместе, и которые обслуживаются в базе данных WordPress в таблице posts.

Примером типа постов служит тип post (группа постов из блога), page (группа страниц), attachment (группа загружаемых медиа файлов), а также revision (группа редакций постов). Все эти типы родные или встроенные в WordPress. Зная, что такое тип поста, можно создать и зарегистрировать новый тип, который будет относиться к кастомным типам постов.

Если вы создаете сайт для компании или бизнеса на WordPress, то типами постов могут быть Portfolio, Testimonials и Products. Теперь, когда мы разобрались с концепцией пользовательских типов постов, давайте научимся их создавать.

Как создать пользовательский тип постов

Создать пользовательский тип постов довольно просто. Сперва, необходимо зарегистрировать тип при помощи функции register_post_type(), затем поместить его в функцию и прикрепить все это к экшену init:

Вывод записей wordpress через плагин

Привет друзья! В cms wordpress есть два стандартных типа записей: страницы и посты. У постов есть категории и метки с помощью которых их удобно фильтровать. В недалеком прошлом появилась возможность добавлять произвольные типы записей, так называемые custom post type. Многие бизнес темы используют произвольные типы записей чтобы расширить функционал темы и сделать вывод записей wordpress на странице сайта с определенной логикой. Тот же woocommerce, например, это плагин с помощью которого добавляется функционал интернет-магазина к wordpress – это по сути тоже custom post type.

Когда разного рода записей на сайте накапливается много, возникает необходимость сделать вывод постов из текущей категории или сделать вывод определенного количества постов wordpress на новой странице. Разработчики тем рекомендуют использовать класс WP_QUERY и с его помощью настроить вывод постов из базы данных по разным критериям:

  • по id записи
  • по дате добавления
  • по категории или метке
  • по популярности
  • по мета значению или типу записи
  • по названию
  • по автору и др.

Чтобы реализовать вывод записей wordpress на любой странице сайта необязательно досконально знать php и функции wordpress, я предлагаю сделать вывод записей вордпресс через плагин page builder by site origin. Функционал данного плагина представляет собой тот же wordpress get_posts , но только в понятном для неискушенного в коде пользователя интерфейсе.

Топ-пост этого месяца:  Продвижение канала в Яндекс.Дзен с нуля инструкция для авторов

Сортировка и вывод постов wordpress через плагин

Итак, устанавливаем плагин page builder by site origin и создаем страницу. Можете для тренировки назвать ее another blog. После создания страницы, переключитесь со стандартного редактора вордпрес в режим page builder чтобы получить доступ к функционалу плагина. Далее поставьте ряд на всю ширину экрана нажав на кнопку «Добавить строку» и выберите виджет из категории «Виджеты Page Builder». Называется он «Цикл записей wordpress».

Чтобы ощутить всю мощь данного плагина нужно иметь на сайте достаточное количество постов. Если у вас мало записей, то добавьте несколько тестовых, привяжите одни к каким-нибудь категориям, другие к меткам, опубликуйте записи блога от лица разных авторов и назначьте им разные даты публикации. Таким образом у вас появится возможность сделать сортировку постов wordpress по разным критериям и в полной мере оценить функционал виджета «Цикл записей».

Как добавить удобные кастомные поля к записям в WordPress

Сегодня я постараюсь ответить на, довольно часто задаваемый, вопрос: как добавить кастомные поля к записям, на пример изображения, текстовые поля, или выпадающий список.

Если вы знакомы с CMS 1C Bitrix, то знаете, на сколько бы она не была костыльна, она обладает очень удобной системой наборов элементов — инфоблоками, и не менее удобными кастомными свойствами у элементов инфоблока. Как же сделать столь же удобные поля в WordPress, давайте разберёмся.

Настройка полей в админке

«Из коробки» WordPress не обладает подобным функционалом, однако мы можем легко его добавить при помощи плагина «Advanced Custom Fields» (Страница плагина на wordpress.org). Для установки плагина вам необходимо в административной части своего сайта перейти на страницу «Плагины», воспользоваться поиском и установить необходимый плагин.

После установки в боковом меню административной части сайта появится пункт «Произвольные поля». Для настройки своих кастомных полей, переходите в него.

Для начала, необходимо добавить группу полей, это можно сделать при помощи кнопки в верхней части страницы, рядом с заголовком:

Добавление группы полей

Далее введите название группы и можно добавлять поля. Для начала нужно определиться какого типа поле вам необходимо, выбор довольно велик:

Типы кастомных полей

Я покажу создание полей на примере этого блога, я создам поля для вывода приложенных к посту файлов и дополнительных изображений.

Для создания поля жмём на кнопку «Добавить поле», и вводим необходимые данные:

  • Ярлык поля — название поля, которое вы будете видеть в админке сайта,
  • Имя поля — символьный код поля, по нему вы сможете получить доступ к полю в коде шаблона сайта,
  • Тип поля — текст, файл и так далее,
  • Инструкции по полю — небольшой комментарий, так же будет отображаться в админке,
  • Обязательно — указываем, будет ли wordpress требовать обязательного заполнения этого поля,
  • Условная логика — вы можете задать условие, при котором поле будет отображаться или скрываться

После выбора параметров необходимо нажать на кнопку «Закрыть поле», для его сохранения. У меня получился следующий список полей:

Теперь следует выбрать условия, по которым WordPress будет понимать где отображать наши кастомные поля, это можно сделать на этой же странице, в разделе «Расположения». Вы можете сделать фильтрацию по типам полей или по группе активного пользователя. На пример, при установке такого правила:

Правило группы полей

поля из этой группы будут видны только пользователям с ролью «Администратор». Думаю, суть ясна, попробуйте выставить собственные правила и посмотрите как это работает.

Ниже, на этой странице, вы можете настроить правила отображения полей в админке. Я не буду на этом останавливаться. Для сохранения всех изменений в группе жмём «Сохранить».

Далее, создайте новую или откройте старую запись, которая удовлетворяет условиям, установленным в группе полей. И заполняете все необходимые поля, если требуется корректируете их.

Использование полей в коде сайта (вывод полей на странице)

Всего есть несколько основных функций для получения кастомных полей записи:

  • get_field() — получение значения конкретного поля в виде массива
  • get_fields() — получение значений списка полей в виде массива
  • get_field_object() — получение значения конкретного поля в виде объекта
  • get_field_objects() — получение списка значений полей в виде объекта

Вы можете использовать тот, который удобен вам. Более подробно о функциях для работы с полями вы можете узнать на странице официальной документации к плагину.

Вот пример отображения ссылки на оригинал статьи, если она является переводом:

Жизнь продолжается

Создание кастомного тип постов в WordPress

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Как зарегистрировать новый тип поста — register_post_type

Важные моменты

  • С помощью аргумента taxonomies новый тип постов связан с существующей таксономией — категориями и тегами. При необходимости можно создать также кастомную таксономию специально под кастомные записи. Но это уже другая тема.
  • После создания нового типа записей в меню админки должен появиться пункт с новым типом записей, где их собственного и можно будет создавать.

Для кастомных типов нельзя использовать названия, зарезервированные WP —

  • post , page , attachment , revision , nav_menu_item
  • action , order , theme

Чтобы вообще все было красиво, можно в functions также добавить следующие кусочки:

Этот удаляет slug кастомного типа записей в URL записей. (Если устраивает slug в ссылках, можно оставить как есть и не добавлять это в functions)
А этот добавляет новые кастомные записи в основной цикл WordPress, чтобы они появлялись в категориях, на главной и в любых других листингах, которые формируются циклом.

  • Получить ссылку
  • Facebook
  • Twitter
  • Pinterest
  • Электронная почта
  • Другие приложения

Комментарии

Отправить комментарий

Популярные сообщения из этого блога

Легенда об Андрогинах

Андрогин – мифологический персонаж, обладающий признаками мужского и женского пола. В психологии образ андрогина символизирует единение мужского и женского начала, удерживание этого равновесия при помощи сознания.

Добавить комментарий