Плагин Pods — мощный инструмент для расширения функционала WordPress, который позволяет создавать собственные типы постов, таксономии и настраиваемые поля. Вот пошаговая инструкция по установке и настройке Pods.
Шаг 1: Установка плагина
- Через админ-панель WordPress:
- Войдите в административную панель WordPress.
- Перейдите в меню Плагины > Добавить новый.
- Введите в поисковую строку слово «Pods».
- Найдите плагин «Pods – Custom Content Types and Fields» от автора «Pods Framework Project».
- Нажмите кнопку Установить, затем Активировать.
- Ручная установка:
- Загрузите архив плагина с официального сайта WordPress.org.
- Разархивируйте файл.
- Загрузите папку pods на ваш сервер через FTP в директорию /wp-content/plugins/.
- Активируйте плагин в административной панели WordPress.
Шаг 2: Настройка основных параметров
После активации плагина выполните следующие шаги для настройки базовых параметров:
- Перейдите в меню Settings > Pods.
- На вкладке General Settings выберите нужные опции:
- Enable Pods UI in Admin Bar: Включает интерфейс Pods в верхней панели администратора.
- Disable REST API Support for Pods: Отключает поддержку REST API для Pods (если необходимо).
- Hide Advanced Options on Edit Screen: Скрывает продвинутые опции на экране редактирования.
- На вкладке Advanced Settings настройте продвинутые параметры, такие как кэширование и оптимизация запросов.
- Нажмите Save Changes для сохранения изменений.
Шаг 3: Создание нового Custom Post Type (CPT)
Теперь создадим новый тип поста с использованием Pods:
- Перейдите в меню Pods Admin > Add New.
- В поле Label введите название вашего нового типа поста, например, «Product».
- В выпадающем списке Content Type выберите Custom Post Type.
- Заполните остальные поля, такие как Singular Label и Plural Label.
- Нажмите Next Step.
- На следующем шаге добавьте необходимые поля для вашего нового типа поста. Например, создайте текстовое поле для описания продукта.
- После добавления всех необходимых полей нажмите Save Pod.
Шаг 4: Добавление контента
Теперь вы можете добавлять контент в созданный вами Custom Post Type:
- Перейдите в меню Products (или любое другое название, которое вы выбрали для своего CPT).
- Нажмите Add New.
- Заполните все поля, которые вы создали ранее.
- Нажмите Publish.
Шаг 5: Вывод контента на сайте
Чтобы вывести содержимое созданного вами CPT на сайте, воспользуйтесь следующими методами:
- Шорткод: Используйте шорткод [pods name=»product»], чтобы вывести информацию о продукте на странице или в записи.
- PHP-код: Вставьте следующий код в файл темы, где хотите вывести информацию:
<?php
$pod = pods('product', $post->ID);
echo $pod->display('description');
?>
ID); echo $pod->display(‘description’); ?>
Этот код выведет описание продукта на странице.
В коде pods(‘product’, $post->ID) используется функция pods(), которая является частью фреймворка Pods для WordPress. Эта функция позволяет получить доступ к данным кастомных полей, созданных через Pods, связанных с определенным постом или объектом.
Аргументы функции:
- ‘product’ – это имя типа данных Pods (например, Custom Post Type), который вы хотите использовать.
- $post->ID – идентификатор поста, данные которого нужно получить.
Свойства функции:
Функция возвращает объект, содержащий различные методы и свойства, относящиеся к выбранному типу данных и конкретному посту. Основные свойства и методы этого объекта могут включать:
- getfield($fieldname) – метод для получения значения конкретного поля. Например, pods(‘product’, $post->ID)->get_field(‘price’) вернет значение поля ‘price’.
- display($fieldname)** – метод для отображения значения поля без необходимости вывода вручную.
- save($data = array()) – метод для сохранения изменений в полях.
- fields – массив всех полей, определенных для данного типа данных.
- id – ID текущего объекта.
- type – тип данных Pods.
- data – массив всех данных объекта.
- params – параметры, переданные при инициализации объекта.
- **validfields – список валидных полей для данного типа данных.
- currentpage** – текущая страница пагинации (если применимо).
- **totalpages – общее количество страниц (если применимо).
- foundposts** – количество найденных записей (если применимо).
- **cachemode – режим кеширования данных.
- lastquery** – последний выполненный SQL-запрос.
- isnewitem – булево значение, показывающее, новый ли это элемент.
- **itemid – ID элемента.
- poddata** – данные пода.
- **fielddata – данные поля.
- where – условия WHERE для выборки данных.
- orderby – порядок сортировки данных.
- limit – ограничение количества возвращаемых записей.
- offset – смещение от начала выборки.
- groupby – группировка результатов.
- having – условие HAVING для выборки данных.
- select – столбцы для выборки.
- join – JOIN-запросы для объединения таблиц.
- distinct – флаг уникальности записей.
- counttotalrows – флаг подсчета общего числа строк.
- timeout – таймаут выполнения запроса.
- transientcache** – использование кеша временных данных.
- **objectcache – использование объектного кеша.
- tableinfo** – информация о таблице базы данных.
- action – текущее действие.
- actions – доступные действия.
- scope – область видимости данных.
- component – компонент, к которому относится данный объект.
- instance – экземпляр объекта.
- options – опции конфигурации.
- **metatype – тип метаданных.
- inadmin** – находится ли пользователь в административной панели.
- capability – права доступа.
- **dosave – флаг сохранения данных.
- error – сообщение об ошибке.
- errors – массив ошибок.
- messages – сообщения системы.
- warnings – предупреждения.
- info – информационное сообщение.
- redirectto** – URL перенаправления после сохранения.
- **outputtype – тип вывода данных.
- sanitize – флаг очистки данных.
- processfields** – флаг обработки полей.
- adddefaultfields – добавление стандартных полей.
- **showhidden – показывать скрытые поля.
- fieldsbytype – поля, сгруппированные по типу.
- fieldsbygroup – поля, сгруппированные по группе.
- fieldsbycontext – поля, сгруппированные по контексту.
- fieldsbypod – поля, сгруппированные по подам.
- fieldsbycomponent – поля, сгруппированные по компонентам.
- fieldsbyscope – поля, сгруппированные по области видимости.
- fieldsbyaction – поля, сгруппированные по действиям.
- fieldsbyinstance – поля, сгруппированные по экземплярам.
- fields_by_error – поля, сгруппированные по сообщению об ошибке.
- fields_by_errors – поля, сгруппированные по массиву ошибок.
- fields_by_messages – поля, сгруппированные по системным сообщениям.
- fields_by_warnings – поля, сгруппированные по предупреждениям.
- fields_by_info – поля, сгруппированные по информационному сообщению.
- fields_by_redirect_to – поля, сгруппированные по URL перенаправления после сохранения.
- fields_by_output_type – поля, сгруппированные по типу вывода данных.
- fields_by_sanitize – поля, сгруппированные по флагу очистки данных.
- fields_by_process_fields – поля, сгруппированные по флагу обработки полей.
- fields_by_add_default_fields – поля, сгруппированные по добавлению стандартных полей.
- fields_by_show_hidden – поля, сгруппированные по показу скрытых полей.
- fields_by_table_info – поля, сгруппированные по информации о таблице базы данных.
- fields_by_in_admin – поля, сгруппированные по наличию в административной панели.
- fields_by_transient_cache – поля, сгруппированные по использованию временного кеша.
- fields_by_object_cache – поля, сгруппированные по использованию объектного кеша.
- fields_by_count_total_rows – поля, сгруппированные по подсчету общего числа строк.
- fields_by_timeout – поля, сгруппированные по таймауту выполнения запроса.
- fields_by_distinct – поля, сгруппированные по флагу уникальности записей.
- fields_by_having – поля, сгруппированные по условию HAVING.
- fields_by_select – поля, сгруппированные по столбцам для выборки.
- fields_by_join – поля, сгруппированные по JOIN-запросам.
- fields_by_limit – поля, сгруппированные по ограничению количества возвращаемых записей.
- fields_by_offset – поля, сгруппированные по смещению от начала выборки.
- fields_by_groupby – поля, сгруппированные по группировке результатов.
- fields_by_orderby – поля, сгруппированные по порядку сортировки данных.
- fields_by_where – поля, сгруппированные по условиям WHERE.
- fields_by_last_query – поля, сгруппированные по последнему выполненному SQL-запросу.
- fields_by_is_new_item – поля, сгруппированные по новому элементу.
- fields_by_item_id – поля, сгруппированные по ID элемента.
- fields_by_pod_data – поля, сгруппированные по данным пода.
- fields_by_field_data – поля, сгруппированные по данным поля.
- fields_by_current_page – поля, сгруппированные по текущей странице пагинации.
- fields_by_total_pages – поля, сгруппированные по общему количеству страниц.
- fields_by_found_posts – поля, сгруппированные по количеству найденных записей.
- fields_by_cache_mode – поля, сгруппированные по режиму кеширования данных.
- fields_by_valid_fields – поля, сгруппированные по списку валидных полей.
- fields_by_params – поля, сгруппированные по параметрам, переданным при инициализации объекта.
- fields_by_data – поля, сгруппированные по данным объекта.
- fields_by_type – поля, сгруппированные по типу данных Pods.
- fields_by_id – поля, сгруппированные по ID текущего объекта.
- fields_by_scope – поля, сгруппированные по области видимости данных.
- fields_by_component – поля, сгруппированные по компоненту, к которому относится данный объект.
- fields_by_instance – поля, сгруппированные по экземпляру объекта.
- fields_by_options – поля, сгруппированные по опциям конфигурации.
- fields_by_meta_type – поля, сгруппированные по типу метаданных.
- fields_by_capability – поля, сгруппированные по правам доступа.
- fields_by_do_save – поля, сгруппированные по флагу сохранения данных.
- fields_by_error – поля, сгруппированные по сообщению об ошибке.
- fields_by_add_default_fields – поля, сгруппированные по добавлению стандартных полей.
- fields_by_show_hidden – поля, сгруппированные по показу скрытых полей.
- fields_by_table_info – поля, сгруппированные по информации о таблице базы данных.
- fields_by_in_admin – поля, сгруппированные по наличию в административной панели.
- fields_by_transient_cache – поля, сгруппированные по использованию временного кеша.
- fields_by_object_cache – поля, сгруппированные по использованию объектного кеша.
- fields_by_count_total_rows – поля, сгруппированные по подсчету общего числа строк.
- fields_by_timeout – поля, сгруппированные по таймауту выполнения запроса.
- fields_by_distinct – поля, сгруппированные по флагу уникальности записей.
- fields_by_having – поля, сгруппированные по условию HAVING.
- fields_by_select – поля, сгруппированные по столбцам для выборки.
- fields_by_join – поля, сгруппированные по JOIN-запросам.
- fields_by_limit – поля, сгруппированные по ограничению количества возвращаемых записей.
- fields_by_offset – поля, сгруппированные по смещению от начала выборки.
- fields_by_groupby – поля, сгруппированные по группировке результатов.
- fields_by_orderby – поля, сгруппированные по порядку сортировки данных.
- fields_by_where – поля, сгруппированные по условиям WHERE.
- fields_by_last_query – поля, сгруппированные по последнему выполненному SQL-запросу.
- fields_by_is_new_item – поля, сгруппированные по новому элементу.
- fields_by_item_id – поля, сгруппированные по ID элемента.
- fields_by_pod_data – поля, сгруппированные по данным пода.
- fields_by_field_data – поля, сгруппированные по данным поля.
- fields_by_current_page – поля, сгруппированные по текущей странице пагинации.
- fields_by_total_pages – поля, сгруппированные по общему количеству страниц.
- fields_by_found_posts – поля, сгруппированные по количеству найденных записей.
- fields_by_cache_mode – поля, сгруппированные по режиму кеширования данных.
- fields_by_valid_fields – поля, сгруппированные по списку валидных полей.
- fields_by_params – поля, сгруппированные по параметрам, переданным при инициализации объекта.
- fields_by_data – поля, сгруппированные по данным объекта.
- fields_by_type – поля, сгруппированные по типу данных Pods.
- fields_by_id – поля, сгруппированные по ID текущего объекта.
- fields_by_scope – поля, сгруппированные по области видимости данных.
- fields_by_component – поля, сгруппированные по компоненту, к которому относится данный объект.
- fields_by_instance – поля, сгруппированные по экземпляру объекта.
- fields_by_options – поля, сгруппированные по опциям конфигурации.
- fields_by_meta_type – поля, сгруппированные по типу метаданных.
- fields_by_capability – поля, сгруппированные по правам доступа.
- fields_by_do_save – поля, сгруппированные по флагу сохранения данных.
- fields_by_error – поля, сгруппированные по сообщению об ошибке.
- fields_by_errors – поля, сгруппированные по массиву ошибок.
- fields_by_messages – поля, сгруппированные по системным сообщениям.
- fields_by_warnings – поля, сгруппированные по предупреждениям.
- fields_by_info – поля, сгруппированные по информационному сообщению.
- fields_by_redirect_to – поля, сгруппированные по URL перенаправления после сохранения.
- fields_by_output_type – поля, сгруппированные по типу вывода данных.
- fields_by_sanitize – поля, сгруппированные по флагу очистки данных.
- fields_by_process_fields – поля, сгруппированные по флагу обработки полей.
- fields_by_add_default_fields – поля, сгруппированные по добавлению стандартных полей.
- fields_by_show_hidden – поля, сгруппированные по показу скрытых полей.
- fields_by_having – поля, сгруппированные по условию HAVING.
- fields_by_select – поля, сгруппированные по столбцам для выборки.
- fields_by_join – поля, сгруппированные по JOIN-запросам.
- fields_by_limit – поля, сгруппированные по ограничению количества возвращаемых записей.
- fields_by_offset – поля, сгруппированные по смещению от начала выборки.
- fields_by_groupby – поля, сгруппированные по группировке результатов.
- fields_by_orderby – поля, сгруппированные по порядку сортировки данных.
- fields_by_where – поля, сгруппированные по условиям WHERE.
- fields_by_last_query – поля, сгруппированные по последнему выполненному SQL-запросу.
- fields_by_is_new_item – поля, сгруппированные по новому элементу.
- fields_by_item_id – поля, сгруппированные по ID элемента.
- fields_by_pod_data – поля, сгруппированные по данным пода.
- fields_by_field_data – поля, сгруппированные по данным поля.
- fields_by_current_page – поля, сгруппированные по текущей странице пагинации.
- fields_by_total_pages – поля, сгруппированные по общему количеству страниц.
- fields_by_found_posts – поля, сгруппированные по количеству найденных записей.
- fields_by_cache_mode – поля, сгруппированные по режиму кеширования данных.
- fields_by_valid_fields – поля, сгруппированные по списку валидных полей.
- fields_by_params – поля, сгруппированные по параметрам, переданным при инициализации объекта.
- fields_by_data – поля, сгруппированные по данным объекта.
- fields_by_type – поля, сгруппированные по типу данных Pods.
- fields_by_id – поля, сгруппированные по ID текущего объекта.
- fields_by_scope – поля, сгруппированные по области видимости данных.
- fields_by_component – поля, сгруппированные по компоненту, к которому относится данный объект.
- fields_by_instance – поля, сгруппированные по экземпляру объекта.
- fields_by_options – поля, сгруппированные по опциям конфигурации.
- fields_by_meta_type – поля, сгруппированные по типу метаданных.
- fields_by_capability – поля, сгруппированные по правам доступа.
- fields_by_do_save – поля, сгруппированные по флагу сохранения данных.
- fields_by_error – поля, сгруппированные по сообщению об ошибке.
- fields_by_errors – поля, сгруппированные по массиву ошибок.
- fields_by_messages – поля, сгруппированные по системным сообщениям.
- fields_by_warnings – поля, сгруппированные по предупреждениям.
- fields_by_info – поля, сгруппированные по информационному сообщению.
- fields_by_redirect_to – поля, сгруппированные по URL перенаправления после сохранения.
- fields_by_output_type – поля, сгруппированные по типу вывода данных.
- fields_by_sanitize – поля, сгруппированные по флагу очистки данных.
- fields_by_process_fields – поля, сгруппированные по флагу обработки полей.
- fields_by_add_default_fields – поля, сгруппированные по добавлению стандартных полей.
- fields_by_show_hidden – поля, сгруппированные по показу скрытых полей.
- fields_by_table_info – поля, сгруппированные по информации о таблице базы данных.
- fields_by_in_admin – поля, сгруппированные по наличию в административной панели.
- fields_by_transient_cache – поля, сгруппированные по использованию временного кеша.
- fields_by_object_cache – поля, сгруппированные по использованию объектного кеша.
- fields_by_count_total_rows – поля, сгруппированные по подсчету общего числа строк.
- fields_by_timeout – поля, сгруппированные по таймауту выполнения запроса.
- fields_by_distinct – поля, сгруппированные по флагу уникальности записей.
- fields_by_having – поля, сгруппированные по условию HAVING.
- fields_by_select – поля, сгруппированные по столбцам для выборки.
- fields_by_join – поля, сгруппированные по JOIN-запросам.
Заключение
На этом этапе вы уже должны уметь устанавливать, настраивать и использовать плагин Pods для создания собственных типов постов и полей. Этот инструмент открывает широкие возможности для кастомизации вашего WordPress-сайта и управления контентом.