Создание пользовательских типов сообщений в WordPress

Приветствую!

Хочу вам рассказать одну небольшую историю, которая произошла со мной. Это было в то время, когда я пытался осилить WordPress. Я уже умел делать темы для WordPress, но мне было интересно как сделать свои типы данных. Перелопатил тонны информации в рунете, но к сожалению все было описано более чем поверхностно. Тогда я полез в буржунет, где эта тема была полностью расскрыта. Короче: научился я делать пользовательские типы сообщений.

Делал на днях тему на заказ и там пришлось делать эти типы данных. И тут я вспомнил про то, как я искал инфу, чтобы сделать их. В итоге — я решил написать для начинающих подробный пост, который все и разъясняет как сделать.

Но хватит лирики — поехали вникать в создание пользовательских типов сообщений!

Создание пользовательских типов сообщений в WordPress

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

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

Что такое пользовательский тип сообщения?

Пользовательские типы сообщений — это не что иное, как базовая запись, но с разными параметрами, определенными внутри вашего кода. Тип регулярных сообщений — это post, страницы — используют page, вложения — используют attachment и т. д. Начиная с выпуска WordPress 3.0, теперь вы можете создавать свои собственные настраиваемые типы сообщений. При успешном создании и возврате правильных параметров вы можете иметь настроенную область на своем сайте.

Зачем использовать пользовательский тип сообщения?

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

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

Поскольку наш тип сообщения связан с обзорами музыки, мы можем создать область нашего сайта, чтобы пользователи могли получать прямой доступ. URL-адрес этого раздела будет выглядеть следующим образом: https://zacompom.ru/music-reviews/ (это просто пример URL, на самом деле такой категории на моем сайте нет!). «music-reviews» — это имя нашего настраиваемого типа сообщений. Затем в этом разделе Вы можете создавать новые сообщения этого типа в результате из постоянной ссылки URL — должно получиться так: https://zacompom.ru/music-reviews/artist/album/. Как вы построите только что созданную секцию, о которой я говорю, полностью зависит от вас, и именно поэтому это потрясающая особенность WordPress.

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

Могу я просто использовать плагин?

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

Custom Post Type UI

Этот плагин предоставляет простой в использовании интерфейс для создания и администрирования пользовательских типов сообщений и таксономий в WordPress. Этот плагин создан для WordPress 3.x и выше. Плагин просто создает типы. Вам нужно будет добавить их в тему самостоятельно.

Создание пользовательских типов сообщений в WordPress

Types

Types — этот плагин позволяет настраивать область администрирования WordPress, добавляя типы контента, настраиваемые поля и таксономию. Вы сможете создать администратора WordPress и превратить его в свою собственную систему управления контентом.

Создание пользовательских типов сообщений в WordPress

Добавление собственного настраиваемого типа сообщений

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

Если вы волокете в PHP и немного знаете о WordPress, тогда всегда есть опция для добавления собственных пользовательских функций типа сообщения. В настоящее время существует два способа добавить настраиваемый тип сообщения в тему: создать плагин или добавить код в файл functions.php вашей темы. Мы с вами добавим пример пользовательского типа сообщений для просмотра фильмов в локальную установку WordPress с использованием новой темы Divi 2.0. Ниже я расскажу о шагах, которые вы можете предпринять, чтобы добавить собственный тип публикации на свой сайт.

Обзор

Ради простого примера мы добавим наш новый код в наш файл functions.php внутри нашей папки темы. Стоит отметить, что этот код будет доступен только для этой конкретной установленной темы. Если вам нужна эта функция пользовательского типа сообщений в нескольких темах, вам нужно создать плагин. Я не буду вдаваться в подробности о том, как это сделать сегодня, но это довольно простая и схожая задача для того, что мы будем делать в нашем файле functions.php.

Шаг 1 — Регистрация типа сообщения

Откройте файл functions.php и добавьте в него код. Убедитесь, что код добавлен до закрытия PHP-тега. Я объясню приведенный ниже код.

	// Создание пользовательского типа записи "Обзор Фильмов"
	function movie_reviews_init() {
	    $args = array(
	      'label' => 'Movie Reviews',
	        'public' => true,
	        'show_ui' => true,
	        'capability_type' => 'post',
	        'hierarchical' => false,
	        'rewrite' => array('slug' => 'movie-reviews'),
	        'query_var' => true,
	        'menu_icon' => 'dashicons-video-alt',
	        'supports' => array(
	            'title',
	            'editor',
	            'excerpt',
	            'trackbacks',
	            'custom-fields',
	            'comments',
	            'revisions',
	            'thumbnail',
	            'author',
	            'page-attributes',)
	        );
	    register_post_type( 'movie-reviews', $args );
	}
	add_action( 'init', 'movie_reviews_init' );

Определения кода:

  • function movie_reviews_init() — Здесь мы создаем новую функцию для нашего настраиваемого типа сообщений. Мы делаем это, чтобы ограничить конфликты с любым другим кодом внутри нашего файла functions.php. Это также лучшая практика при добавлении нового кода в любой файл functions.php.
  • label — Название или имя для типа сообщения, помеченного для перевода. Если вы не объявляете пользовательский ярлык, WordPress по умолчанию будет использовать имя персонализированного типа сообщения.
  • public. Предназначен ли тип записи для публичного использования либо через интерфейс администратора, либо через интерфейс пользователей. WordPress устанавливает это значение false по умолчанию. Здесь мы устанавливаем его в true, чтобы наш пользовательский тип сообщения был опубликован для всех.
  • show_ui — создает пользовательский интерфейс по умолчанию для управления этим типом сообщения в администраторе. Вы можете установить значение true или false. Для удобства использования пользовательский интерфейс в области администрирования всегда хорош.
  • feature_type — Здесь мы можем объявить тип персонализированного сообщения, с которым мы будем иметь дело. Он используется для создания возможностей чтения, редактирования и удаления сообщения или страниц. Вы можете выбрать любой пост или страницу .
  • hierarchical. Является ли тип сообщения иерархическим (например, страница). Или в условиях неспециалиста, можете ли вы объявить родительскую страницу, дочернюю страницу и т. д. типа сообщения. Это в основном предназначено для страниц. Здесь мы объявляем это ложным, поэтому нет необходимости беспокоиться об этом для нашего примера.
  • rewrite — это правило является либо истинным, либо ложным. Значение по умолчанию истинно, поэтому, если вводится аргумент slug, тогда имя пула добавляется к сообщениям. Наш слаг «movie-reviews» будет добавлен к каждому новому сообщению этого типа.
  • query_var. Это правило является либо истинным, либо ложным. Он задает имя типа сообщения как переменную запроса.
  • menu_icon — это правило объявляет пользовательский значок для области администрирования. Здесь мы используем ресурс, называемый dashicons, который уже включен в WordPress.
  • supports — это, как правило, набор функций, которые будет поддерживать пользовательский тип сообщения. Здесь у нас довольно длинный список. Они будут привязаны к области администрирования.
  • register_post_type ($ post_type, $ args); — Функция register_post_type () — это функция, которую WordPress распознает как пользовательский генератор типа сообщений. В этом примере он принимает два параметра, которые являются именем самого типа сообщения и любыми аргументами, которые вы хотите вызвать.
  • add_action (‘init’, ‘movie_reviews_init’); — Эта строка кода возвращает или вызывает нашу функцию, чтобы она срабатывала и отображалась на нашем сайте.

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

Шаг 2 — Тест

Теперь, когда мы определили наш пользовательский тип сообщения внутри нашего файла functions.php, идите в панели инструментов WordPress, чтобы убедиться, что мы все сделали правильно. Теперь у вас должен быть новый пункт меню в левой части экрана под названием «Movie Reviews» (Обзор фильмов).

Создание пользовательских типов сообщений в WordPress

Наш пользовательский тип сообщения добавлен в область администрирования WordPress.

Если вы наведете курсор на раздел «Movie Reviews» (Обзор фильмов) нашего недавно добавленного пользовательского типа сообщений, вы увидите другое меню, которое включает «Обзор фильмов» и «Добавить новый».

Создание пользовательских типов сообщений в WordPress

Просмотреть «Обзор фильмов» или «Добавить обзор фильма».

Если вы нажмете «Добавить новый», вы увидите знакомый интерфейс, который будет выглядеть как обычный пост в WordPress. Никаких сюрпризов, но мы успешно обновили нашу административную зону. Затем нам нужно работать над включением этих пользовательских типов сообщений на наш сайт, чтобы они отображались на передней панели. Если вы помните наш код ранее, «supports» в частности, в разделе, вы увидите, что при добавлении нового сообщения в соответствии с просмотром фильмов вам доступны все функции, перечисленные в поддерживаемых форматах.

	'supports' =>; array(
        'title',
        'editor',
        'excerpt',
        'trackbacks',
        'custom-fields',
        'comments',
        'revisions',
        'thumbnail',
        'author',
        'page-attributes',)
    );

Создание пользовательских типов сообщений в WordPress

Здесь мы добавляем новый обзор фильма.

Шаг 3 — Вывод обзора фильмов

Теперь нам нужно добавить функциональность, которая делает то, что мы публикуем, действительно появляется в интерфейсе нашего веб-сайта. Давайте создадим новое меню, в котором будет отображаться навигационная ссылка на наши обзоры фильмов. Перейдите на вкладку «Внешний вид» в своей области администрирования и откройте вкладку «Меню». Здесь мы называем это «Главной навигацией». Я добавлю страницу под названием «Обзоры фильмов», а также пару образцов страниц для демонстрационных целей. Вот как выглядит мой экран:

Создание пользовательских типов сообщений в WordPress

Здесь мы настраиваем нашу структуру меню для нашей основной навигации.

Поэтому, если мы отправимся на нашу главную страницу, вы увидите нечто подобное. Помните, что я использую новую тему Divi 2.0. На данный момент я не настраивал ее особенно. Обратите внимание, что в пункте меню «Обзоры фильмов» в заголовке обновлено отображение того, что мы собираемся сделать. Давайте добавим новый обзор фильма. Здесь вы увидите новое сообщение, которое я создал, у которого есть текст, заголовок и изображение.

* Быстрая заметка о добавлении нового сообщения. Для моей текущей темы я уже установил свои постоянные ссылки. Вы должны сделать то же самое, чтобы избежать конфликтов здесь. Перейдите во вкладку «Настройки» и найдите постоянные ссылки. Измените ее в зависимости от того, что вы предпочитаете. Как правило, чем проще, тем лучше.

Создание пользовательских типов сообщений в WordPress

Добавление нового обзора фильма

Если вы нажмете сообщение «Просмотр», вы увидите, как сообщение появляется на сайте. Обратите внимание на URL-адрес. В моем случае я назвал свой сайт dev, но мой URL-адрес localhost:8888/dev/movie-reviews/fargo/. В теории все работает, но мы по-прежнему хотим, чтобы все наши обзоры фильмов появлялись на странице, которую мы создали под названием «Movie Reviews», как список наших последних сообщений в блоге. Если вы перейдете на эту страницу, вы увидите, что она пустая.

Создание пользовательских типов сообщений в WordPress

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

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

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

Создайте новый файл под названием page-movie-reviews.php внутри папки вашей темы.

В новый файл следует добавить код, который ниже, чтобы сказать WordPress, что это действительно новый файл шаблона.

	/**
	* Template Name: Movie Reviews
	**/

Поскольку мы уже используем тему Divi 2.0, я просто скопирую код из файла page.php, чтобы поддерживать наш сайт. Вы можете сделать то же самое для своей темы, которую вы используете. Просто не забудьте включить код выше, чтобы WordPress распознал его как шаблон.

Теперь нам нужно вернуться в область администрирования и изменить шаблон, который мы используем для страницы «Movie Reviews». Наш новый шаблон должен появиться в раскрывающемся списке в разделе «Атрибуты страницы» как «Обзоры фильмов».

Создание пользовательских типов сообщений в WordPress

Изменение нашего шаблона по умолчанию на обзоры фильмов.

Итак, теперь, используя наш шаблон, нам нужно изменить код для вывода нашего настраиваемого типа сообщений. У вашего файла page.php должен быть цикл внутри, который выглядит так:

	<?php while ( have_posts() ) : the_post(); ?>
		// Ваш код
	<?php endif; ?>
	<?php endwhile; ?>

Вам нужно будет изменить цикл, добавив следующий код:

	<?php
	$query = new WP_Query( array('post_type' => 'movie-reviews', 'posts_per_page' => 5 ) );
	while ( $query->have_posts() ) : $query->the_post(); ?>
		// Код, например: "the_content();"
	<?php endif; wp_reset_postdata(); ?>
	<?php endwhile; ?>

Мы добавили новый запрос в цикл WordPress, который предназначен для нашего настраиваемого типа сообщений. Эта переменная $query используется в цикле, чтобы можно было отображать кратность на странице наших обзоров фильмов. Благодаря этому на нашей странице нашего просмотра фильмов вы получите наш обзор фильмов, который мы сделали ранее.

Создание пользовательских типов сообщений в WordPress

Наш пользовательский тип сообщения работает после добавления нашего кода.

Есть одна вещь, которую я хотел бы вывести, а именно — миниатюру. В ваш файл page.php уже это встроенно. Вы узнаете, потому что увидите изображения. Если нет, мы добавим еще одну строку кода. В моем случае я буду добавлять его внутри блока ниже:

	<div class="entry-content">
	 	<?php
		    if ( has_post_thumbnail() ) {
		      the_post_thumbnail();
		    }
		      the_content();
	    ?>
	</div>

Мы используем оператор if, чтобы сначала определить, была ли задана миниатюра с момента создания сообщения в админке или нет. Если да — она будет отображаться, если это не так, WordPress проигнорирует попытку поиска миниатюры. Мы остались с нашим обзором фильма, как показано ниже:

Создание пользовательских типов сообщений в WordPress

Наш первый обзор фильма успешно добавлен.

Шаг 5. Добавляем еще обзоры фильмов

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

Создание пользовательских типов сообщений в WordPress

Список других обзоров фильмов.

И напоследок

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

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

Надеюсь вам понравился этот пост.

На этом все, до скорых встреч!

Вам понравилась статья?
плохохорошо (Пока оценок нет)
Загрузка...
Обо мне
Юрич:
Занимаюсь созданием сайтов на ВордПресс более 5 лет. Работал в нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на вордресс, шаблон для сайта или лендинг - не стесняйтесь - пишите. Рад буду помочь!
2 комментария к статье "Создание пользовательских типов сообщений в WordPress"
  1. Юрич: 29.05.2018 в 21:46 - Ответить

    Уберу-ка я эту опцию с сайта)))

  2. Сергей.: 29.05.2018 в 21:36 - Ответить

    Статья точно читается 3 минуты? Старею, наверное…)))