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

GenerateWP

Кастомные (пользовательские) записи – записи, которые генерируются в консоли wp конкретно под определённый сайт.

Существует сайт под названием GenerateWP (https://generatewp.com), и он предоставляет графический интерфейс, который поможет вам сделать много разных интересных вещей в WordPress. В том числе с его помощью можно создать пользовательские типы записей WordPress.

Пользовательские типы записей WordPress (Custom Post Types)

Зайдем во вкладку Post Type Generator и выберем подряд следующие вкладки, которые нужно настраивать под себя:

  • General
  • Post Type
  • Labels
  • Options
  • Visibility
  • Query
  • Permalinks
  • Capabilities
  • Rest API

Допустим, мы хотим создать пользовательскую запись «домашние животные» или «pets».

Заходим по порядку сначала в General, задаем имя будущей функции pets. Нажимаем Update Code и видим, что в коде ниже поменялось имя функции:

Пользовательские типы записей WordPress (Custom Post Types)

И далее также пройдитесь по всем пунктам.

Хочу заметить, что во вкладке Visibility пункт Admin Sidebar Icon можно заполнить используя данные сайта developer.wordpress.org/resource/dashicons/#universal-access. Это иконка, которая появится возле вашей записи в админ-панели.

rel="nofollow"

Весь полученный внизу массив – функцию скопировать.

Пользовательские типы записей WordPress (Custom Post Types)

Затем добавим то, что получилось в functions.php и можем оценить результаты, в админ-панели должна появиться ваша запись.

Пользовательские типы записей WordPress (Custom Post Types)

Разбор кода

Давайте разберем немного сам код.

Первая часть кода объявляет функцию или дает нашей функции имя:

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                => _x( 'Post Types', 'Post Type General Name', 'text_domain' ),
		'singular_name'       => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'           => __( 'Post Type', 'text_domain' ),
		'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
		'all_items'           => __( 'All Items', 'text_domain' ),
		'view_item'           => __( 'View Item', 'text_domain' ),
		'add_new_item'        => __( 'Add New Item', 'text_domain' ),
		'add_new'             => __( 'Add New', 'text_domain' ),
		'edit_item'           => __( 'Edit Item', 'text_domain' ),
		'update_item'         => __( 'Update Item', 'text_domain' ),
		'search_items'        => __( 'Search Item', 'text_domain' ),
		'not_found'           => __( 'Not found', 'text_domain' ),
		'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
	);

Где says custom_post_type () вы просто замените тем именем, которое вы хотите ему дать. Постарайтесь быть конкретными с именами, которые вы даете функции. Если вы используете дочернюю тему или у вас установлено много плагинов, вы не хотите называть ее тем, что уже может быть использовано. Некоторые разработчики рекомендуют добавить свои инициалы в начало имени, чтобы убедиться, что не будет конфликта.

Далее мы видим объявление $labels. Здесь мы создаем массив и устанавливаем его равным переменной, называемой labels. В этом массиве мы рассказываем WordPress, что следует использовать в областях панели мониторинга этого нового пользовательского типа сообщения. Первый элемент массива — это имя. Здесь мы расскажем WordPress, что такое пользовательский тип сообщения. В моем примере я использовала “Домашние животные”.  Следующее поле в массиве-сингулярное имя. Это будет ‘Домашние животные’ или ваша версия. Название очень важно, потому что это то, что вы будете читать в левом боковом меню на приборной панели. Поиграйте с этими метками, а затем перейдите на панель управления и посмотрите, что меняется.

$args = array(
		'label'               => __( 'post_type', 'text_domain' ),
		'description'         => __( 'Post Type Description', 'text_domain' ),
		'labels'              => $labels,
		'supports'            => array( ),
		'taxonomies'          => array( 'category', 'post_tag' ),
		'hierarchical'        => false,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 5,
		'can_export'          => true,
		'has_archive'         => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	);
	register_post_type( 'post_type', $args );

Далее следует изложение аргументов. Снова у нас есть массив и мы устанавливаем его равным переменной args. $args-очень распространенная переменная в WordPress. Первый элемент в массиве очень важен.

“label”, которую не следует путать с метками, которые мы только что создали, — это пользовательский тип записи. Я использовала “Домашние животные” .

Не беспокойтесь о ‘description’, хотя вы можете добавить его и посмотреть, что он делает. Затем вы снова увидите “labels”, где мы теперь использовали переменную $labels для вызова массива, который мы создаем выше. Я не буду рассматривать каждый элемент, который находится в этом массиве, но есть несколько, которые довольно важны.

Первое – “supports “, которое принимает массив элементов. Этот массив сообщает WordPress, какие стандартные элементы вы хотите видеть на странице нового пользовательского типа сообщения.  Здесь вы должны ввести значения в массив. Эти параметры выбирают на вкладке ” Options “.

Пользовательские типы записей WordPress (Custom Post Types)

Экспериментируйте, пробуйте, проверяйте – это самый простой способ понять принцип создания пользовательских типов записей с помощью generatewp.

Наконец, вы должны зарегистрировать свой новый тип записи, который является последним фрагментом кода. Убедитесь, что вы изменили “post_type” тем именем, которое вы ввели в поле “label”.

register_post_type( ‘post_type’, $args );

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

add_action( ‘init’, ‘custom_post_type’, 0 );

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

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