Вывод произвольных типов записей в WordPress рассматриваю на примере темы Understrap.
Произвольные типы записей и поля:
Добавление произвольных типов записей в WordPress (чуть позже напишу о Pods)
Вывод произвольных типов записей в WordPress
Добавление произвольных полей к записям в WordPress
Вывод произвольных полей в записях WordPress
Вывод (отображение) произвольных типов записей в WordPress
Открываем папку с активной темой в любимом редакторе (я люблю VS Code). В примере я использую тему understrap (https://github.com/understrap/understrap). Поэтому если будете повторять за мной, рекомендую тренироваться именно на этой теме. Пояснять буду на примере пользовательского портфолио.
- Кастомные поля решил попробовать создавать при помощи плагина Pods (https://docs.pods.io/). Создал поле с именем «Работы» (works).
-
Создал страницу отвечающую за вывод постов из кастомного раздела — в папке page-templates works-template.php. В шапке прописываю имя шаблона и из админки WP создаю новую страницу и шаблоном выбираю его.
- Template Name: Template: Works - - Template for displaying a page without sidebar even if a sidebar widget is published. - - @package UnderStrap
Публикую страницу.
Вывод произвольных типов записей в WordPress на сайте
Вношу изменения в страницу works-template.php
Что-то типа:
$posts = get_posts("post_type=works&orderby=date&numberposts=5"); if ($posts) : ?> foreach ($posts as $post) : setup_postdata($post); the_title(); the_post_thumbnail(); the_excerpt(); endforeach; endif;
Можно скопировать из подходящего файла из имеющихся в теме, можно писать самому. Смысл вывести заголовки, изображения и отрывки постов.
Готово. Если вы все сделали правильно, то задача минимум достигнута. Мы вывели произвольные типы записей — из раздела «Работы» на страницу сайта. Дальше можно заняться деталями. А именно, чтобы наши полноценные записи выводились в нужной нам верстке, а не в стандартной для шаблона.
- Вывод произвольных типов записей в отдельном шаблоне
В корне темы создаю файл single-works.php и копирую в него код из single.php. Найдя строчки типа
get_template_part( 'loop-templates/content', 'single' );
я поменяю на свой шаблон — single-works.
Создаю файл content-single-works.php в папке loop-templates. Копирую в него код из content-single.php и меняю под нужную мне верстку Теперь «Работы» выводятся по шаблону content-single-works.php. Если необходимо изменить разметку, стили, то правим именно его.
Если мы все сделали правильно, то теперь имеем раздел для контента, который выводится со своей индивидуальной версткой.