Руководство по кастомным типам записей WordPress + спец плагин

от admin

Руководство по кастомным типам записей WordPress + спец плагин

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

Что такое Custom Post Types?

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

Пользовательские типы записей — новый набор административных настроек, которые используются наряду со стандартными типами, такими как Записи, Страницы,Прикрепленные файлы и так далее. Пользовательский тип записей может хранить любой тип информации. У него есть свой редактор и медиа-загрузчик. Он использует существующую структуру таблиц WordPress для простого управления данными. Главное преимущество создания пользовательских типов записей с помощью WordPress API — это удобное использование с существующими темами и шаблонами. Пользовательские типы записей также SEO-дружественны из-за своих постоянных ссылок.

Руководство по кастомным типам записей WordPress + спец плагин

Зачем использовать пользовательские типы записей?

Пользовательские типы записей помогают хранить разные типы записей в разных корзинах. Они отделяют наши обычные записи от других. Очень просто!

Пример создания плагина Custom Post Type

Здесь мы создадим плагин для вывода записей нового типа, которые покажут наши кино-рецензии. Давайте начнем.

Шаг 1. Создаем папку WordPress плагина

Откройте свою папку с WordPress плагинами и создайте новую под названием Movie-Reviews.

Шаг 2. Создаем PHP файл

Откройте папку и создайте PHP файл под названием Movie-Reviews.php.

Шаг 3. Добавляем шапку

Откройте файл и добавьте код шапки плагина.

Шаг 4. Регистрируем пользовательскую функцию

Перед командой закрытия PHP, введите следующую строку кода для того, чтобы выполнять пользовательскую функцию по имени create_movie_review при инициализации каждый раз, когда страница генерируется.

Шаг 5. Выполнение функции

Выполнение функции create_movie_review:

Функция register_post_type делает за нас большинство работы. Как только она вызывается, она готовит среду WordPress к новому пользовательскому типу записи, включая разные разделы в админ. части.

Эта функция принимает два аргумента: первый — уникальное имя пользовательского типа записей, а второй — массив, который представляет свойства нового пользовательского типа записей. Вот другой массив, который содержит разные метки, которые обозначают, какие текстовые строки будут отображаться в разных частях пользовательского типа записей, например «name» отображает название пользовательского типа записей в консоли, «edit» и «view» отображаются соответственно в кнопках Edit и View. Думаю, остальное говорит само о себе.

Аргументы:

  • ‘public’ => true — определяет видимость пользовательского типа записи и в панели администратора, и в клиентской части.
  • ‘menu_position’ => 15 — обозначает позицию меню пользовательского типа записи.
  • ‘supports’ => array( ‘title’, ‘editor’, ‘comments’, ‘thumbnail’, ‘custom-fields’ ) — определяет характеристики пользовательского типа записей, которые будут отображаться.
  • ‘taxonomies’ => array( ‘ ‘ ) — создает пользовательские таксономии. Здесь они не определены.
  • ‘menu_icon’ => plugins_url( ‘images/image.png’, __FILE__ ) — отображает иконку меню администратора.
  • ‘has_archive’ => true — включает архивирование пользовательского типа записи.

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

Шаг 6. Иконка для пользовательского типа записи

Сохраните иконку размером 16 x 16 px в папку вашего текущего плагина. Это необходимо для иконки пользовательского типа записи в консоли.

Шаг 7. Активируем плагин

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

Шаг 8. Добавление новой записи

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

Шаг 9. Публикация

Опубликуйте запись и щелкните по View Movie Review, чтобы увидеть созданную кино-рецензию.

Создание полей Meta Box для пользовательских типов записей

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

Шаг 1. Регистрация пользовательской функции

Откройте файл Movie-Reviews.php и добавьте следующий код перед закрывающимся PHP тегом. Это регистрирует функцию, которая будет вызвана, когда будет посещен интерфейс администратора WordPress.

Шаг 2. Выполнение пользовательской функции

Добавьте выполнение функции my_admin, которая регистрирует мета-блоки и связывает их с пользовательским типом записей movie_reviews.

Здесь функция add_meta_box использована для добавления мета-блоков в пользовательские типы записей.

Атрибуты:

  • movie_review_meta_box — необходимый HTML атрибут id.
  • Movie Review Details — текст, видимый в верхней части мета-блока.
  • display_movie_review_meta_box — обратный вызов, который отображает содержимое мета-блока.
  • movie_reviews — это имя пользовательского типа записей, где будет отображаться мета-блок.
  • normal — определяет часть страницы, где должен быть отображен блок редактирования.
  • high — определяет приоритет в контексте, в котором будут отображаться блоки.

Шаг 3. Выполнение функции display_movie_review_meta_box

Этот код отображает содержимое мета-блока. Здесь мы использовали объектную переменную, которая содержит информацию о каждой кино-рецензии, которая отображается в редакторе. Используя этот объект, мы получили ID записи и использовали его для запроса в базу, чтобы получить связанное имя режиссера и рейтинг, что привело к отображению полей на экране. Когда новая запись добавлена, get_post_meta возвращает пустую строку, что приводит к отображению пустых полей в мета-блоке.

Шаг 4. Регистрация функции Save Post

Эта функция вызывается, когда записи сохраняются в базе данных.

Шаг 5. Вызов функции add_movie_review_fields

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

Шаг 6. Отключение стандартных пользовательских полей

При создании пользовательского типа записи мы определили функцию create_movie_review. Удалите элемент custom-fields из массива supports, потому что это больше не нужно. Сейчас если вы сохраните файл и откроете редактор Movie Reviews, вы заметите два поля в мета-блоке под названием Movie Author и Movie Rating. Таким же образом вы можете добавить и другие элементы.

Руководство по кастомным типам записей WordPress + спец плагин

Создание пользовательского шаблона для пользовательского типа записи

Правильный способ отображения данных пользовательского типа записи — это использование пользовательских шаблонов для каждого пользовательского типа записи. Здесь мы должны создать шаблон, который отображает все кино-рецензии, добавленные с использованием пользовательского типа записи Movie Review.

Шаг 1. Регистрируем функцию для шаблона

Откройте файл Movie-Reviews.php и добавьте перед тегом закрытия PHP следующий код. Он зарегистрирует функцию для вызова, когда будет посещен интерфейс администратора WordPress.

Шаг 2. Выполнение функции

Здесь код ищет шаблон single-(post-type-name).php в папке текущей темы. Если его там нет, он ищет в папке плагина шаблон, который мы предоставили как часть плагина. Зацепкаtemplate_include была использована для изменения стандартного поведения и применения специфического шаблона.

Шаг 3. Создание файла шаблона Single Page

После сохранения открытого файла плагина создайте другой PHP файл под названием single-movie_reviews.php и вставьте в него следующий код.

Здесь мы создали базовый шаблон страницы, используя цикл. Функция query_posts получает элементы пользовательского типа записи и отображает их, используя цикл. Конечно, это только базовый цикл, и вы можете играть с ним, как вам вздумается. Вы также можете использовать CSSстили, чтобы форматировать элементы.

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

Источник: wpcafe.org

 

Единственная проблема это полное не работоспособное состояние выше написанного текста без этого плагина: Custom Post Type Permalinks

ставите , настраиваете и вуаля)))