Отношения родитель-потомок в произвольном типе записи
Опубликовано: 2020-08-18Кто не хочет иметь организованный веб-сайт WordPress? Именно по этой причине важны настраиваемые типы сообщений. CTP позволяет нам разделять данные и легкий доступ и обновлять их при необходимости. Однако то, что позволило нам организовать этот контент и придать ему иерархию, — это отношения родитель-потомок в пользовательском типе записи . Но, прежде чем говорить об отношениях между родителями и детьми, давайте начнем с самого начала.
Долгожданный КПП
Если вы не знаете, почему важно обновлять WordPress, вот очевидный пример. После долгих лет ожидания, когда появился WordPress 3.0, мы, наконец, смогли создавать собственные типы записей. И это действительно была возможность, о которой вы хотели узнать как можно скорее. С его помощью веб-сайт WordPress был преобразован из простой платформы для ведения блога в мощную систему управления. Всего с помощью нескольких строк кода мы можем получить свой собственный тип.
Прежде чем мы перейдем к отношениям родитель-потомок в пользовательском типе записи, давайте прежде всего посмотрим, что такое пользовательский тип записи.
Что такое КПТ?
CPT пользовательских типов сообщений можно рассматривать как контент. Термин «пост» может сбить вас с толку, так как это никоим образом не пост в блоге. CPT может быть любым контентом, который вы хотите, и нет строгих правил для их определения. Очевидно, что есть типы сообщений по умолчанию и настраиваемые. Типы сообщений по умолчанию — это сообщения в блогах, страницы и вложения, исправления и меню навигации.
С другой стороны, настраиваемые типы сообщений обеспечивают более творческий контроль над созданием, хранением и редактированием информации.
Вы не должны смешивать пользовательские типы сообщений с сообщениями в блоге. Если вы хотите создать структуру и иерархию для сообщений в блоге, в вашем распоряжении есть категории и подкатегории в WordPress.
Используйте для пользовательских типов сообщений
Несмотря на то, что существуют типы записей WordPress по умолчанию, некоторым людям нужно нечто большее. Вот несколько примеров, когда пользовательские типы сообщений полезны:
- Сайт со списком событий, с типами событий и местами их проведения
- списки недвижимости
- Сайты электронной коммерции с вариантами продуктов
- Билетная система
- Галерея дизайна или витрина
Имейте в виду, что эти идеи являются лишь некоторыми из предложений. Есть гораздо больше идей, где вы можете использовать пользовательские типы сообщений, так что дайте волю своему воображению.
Родительско-детские отношения и посты
Когда вы переходите в «Настройки» и включаете опцию «Иерархический», вы можете заставить свои сообщения вести себя как страницы, и вы сможете получить отношения родитель/потомок. Например, предположим, что у вас есть тип записи «напиток», родительская страница «ликер» и дочерняя страница «водка». Когда вы просматриваете сообщение «водка», URL-адрес будет выглядеть примерно так: yoursite.com/drink/liquor/vodka/
По сути, это повлияет только на ваши сообщения в рамках вашего типа сообщений, а не на другие типы сообщений, которые связаны друг с другом. Например, тип сообщения «напиток» не будет дочерним по отношению к типу сообщения «еда».
Ограничение возможностей
Говоря об отношениях постов, WordPress предлагает очень мало. На самом деле отношения родитель/потомок в сообщениях пользовательского типа — единственный тип отношений, который поддерживает WordPress. Однако может показаться сложным сделать пользовательский тип записи родительским, а другой пользовательский тип записи — дочерним.

Вот пример из одного проекта, где вы можете увидеть разные типы сообщений и назначение дочерних сообщений родительскому сообщению.
- Пользовательский тип сообщения под названием «Окрестности»
- Для мест в этом районе у нас будет собственный тип сообщений с названием «Места».
- Имейте в виду, что эти пользовательские типы сообщений не являются иерархическими.
- Цель состоит в том, чтобы назначить каждое место соседству, которое будет родительским постом.
Назначение родительского поста
Надеюсь, вы уже немного знаете о типах сообщений и знаете, как они работают. Однако для того, чтобы назначить родительский пост, вам нужно немного написать код. Если вы не знакомы с шорткодами в WordPress, постарайтесь понять основы. Основ должно быть достаточно, так как вам нужно всего лишь добавить следующий код в файлы администратора плагина, чтобы назначить родительский пост.


Для пояснения здесь мы будем использовать плоские пост-типы Neighborhood и Place. А теперь пришло время для кодирования:
/* Hook meta box to just the 'place' post type. */ add_action( 'add_meta_boxes_place', 'my_add_meta_boxes' ); /* Creates the meta box. */ function my_add_meta_boxes( $post ) { add_meta_box( 'my-place-parent', __( 'Neighborhood', 'example-textdomain' ), 'my_place_parent_meta_box', $post->post_type, 'side', 'core' ); } /* Displays the meta box. */ function my_place_parent_meta_box( $post ) { $parents = get_posts( array( 'post_type' => 'neighborhood', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1 ) ); if ( !empty( $parents ) ) { echo '<select name="parent_id" class="widefat">'; // !Important! Don't change the 'parent_id' name attribute. foreach ( $parents as $parent ) { printf( '<option value="%s"%s>%s</option>', esc_attr( $parent->ID ), selected( $parent->ID, $post->post_parent, false ), esc_html( $parent->post_title ) ); } echo '</select>'; } }Не забудьте изменить имена типов сообщений на ваши собственные типы сообщений. Чтобы лучше понять код и использовать его на своем веб-сайте, вот еще один пример на GitHub, который может оказаться полезным.
Почтовые отношения
Хотя отношения родитель-потомок в пользовательских типах сообщений полезны, они также довольно ограничены. Если вы хотите иметь более сложные решения, вам придется искать в другом месте. Это некоторые плагины, которые могут помочь вам добиться аналогичных эффектов от отношений между постами.

Зачем нужны пост-отношения?
Если мы хотим создать связи между сообщениями на сайте, мы в основном используем отношения между сообщениями. И причина, по которой они так хороши, заключается в том, что они позволяют нам создавать продвинутые веб-сайты . Как только мы соединим сообщения пользовательского типа сообщений друг с другом, мы сможем избежать дублирования данных и гарантируем, что всем не нужно редактировать часть информации более одного раза. Кроме того, поскольку время — деньги, нам нужен любой метод, который поможет нам избежать мирских задач.
Преимущества использования отношений родитель-потомок в пользовательских типах сообщений
Одно из очевидных преимуществ использования отношения родитель-потомок в пользовательском типе сообщений заключается в том, что вы можете сортировать свой сайт. Поисковые системы и пользователи любят сайты с организованной структурой . Однако имейте в виду, что для того, чтобы действительно ощутить преимущества этого, вам нужно создать хороший план и придерживаться его.
