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

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

Также обратите внимание, что медиафайлы используют столбец post_parent
для идентификации страницы/записи (включая пользовательские типы записей), к которой они прикреплены.

@DavidGard Вы правы. Но я думаю, что функциональность не пострадает, если мы назначим post_parent
другому "post_id", так как иначе он был бы равен 0
.

что делать, если я хочу, чтобы запись 1 и запись 2 имели разных родителей (которыми являются страницы)

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

В WordPress есть встроенные "Страницы" (иерархические, с возможностью задавать родителя) и "Записи" (не иерархические). Существуют и другие типы записей, но пока оставим их в стороне.
Если вопрос звучит так:
Могут ли записи быть иерархическими?
То ответ — Да,… вы можете иметь "записи" с иерархией. Но так как эта функция не встроена по умолчанию, вам придется зарегистрировать собственный Пользовательский тип записи — см. аргументы » hierarchical.
Такие "Записи" (или статьи, или как угодно…) будут тогда — если у них есть родительская запись — содержать ID родителя внутри своего объекта. Поэтому в цикле вы можете сделать следующее:
if ( have_posts )
{
the_post();
// и т.д.
global $post;
// получаем родителя: http://codex.wordpress.org/Function_Reference/get_post
$parent = get_post( $post->post_parent );
echo "<h2>{$post->post_title} является дочерней для {$parent->post_title}";
// и т.д.
} // endif;

С точки зрения поисковых систем, комбинация этих двух решений поможет Google отслеживать иерархию ваших записей, а также будет полезна для пользователей.
Добавьте страницу и используйте её для размещения записей. "Лучший способ установить родительскую страницу для всех записей — через меню (Внешний вид → Настроить). Вы можете задать статическую страницу для главной страницы или страницы записей. Когда вы устанавливаете статическую страницу для записей, эта страница становится родительской для каждой отдельной записи блога."
Измените структуру постоянных ссылок на /blog/%postname%, как упоминалось выше. "Предположим, вы хотите добавить 'blog' перед названием записи в URL. Убедитесь, что ярлык (slug) вашей страницы блога — 'blog'.
Затем перейдите в WP-админ-панель → Настройки → Постоянные ссылки и выберите последний вариант «Произвольная структура», добавив следующее:
/blog/%postname%/
и сохраните изменения. Это будет применено только к странице блога, другие страницы не будут отображать 'blog' как родительский элемент."
Таким образом, Google увидит иерархию в карте сайта как domain.com/страница/запись (в таком порядке) и также найдет контент в том же месте. То же самое увидят и пользователи. Задача выполнена.

Предположим, вы хотите добавить префикс "blog" перед URL записи. Убедитесь, что slug (ярлык) вашей страницы блога — "blog".
Затем перейдите в Административную панель WordPress > Настройки > Постоянные ссылки и выберите последний вариант "Произвольная структура". Добавьте следующий код:
/blog/%postname%/
и сохраните изменения.
Это изменение будет применено только к странице блога, другие страницы не будут отображать "blog" как родительский элемент.

Я знаю, что это старая запись. Однако ни один из этих ответов не является верным, и я хотел поделиться решением, которое использовал для решения данной проблемы. Лучший способ задать родительскую страницу для всех ваших записей — через меню (Внешний вид → Настроить). Вы можете установить статическую страницу для главной страницы или страницы записей. Когда вы устанавливаете статическую страницу для записей, она становится родительской для каждой отдельной записи блога.

Это не родительская страница — это шаблон, содержащий архив записей. Настройка такого шаблона не делает записи иерархическими.

Как это не родительская страница? Это статическая страница (которая, кстати, не обязательно должна быть архивом — какому бы шаблону страницы вы её ни назначили, там может быть что угодно), и при такой настройке ваши URL-адреса следуют этой иерархии, как и хлебные крошки на сайте. Это минутное исправление, которое позволяет назначить статическую страницу родителем записей. В его вопросе вообще НИ СЛОВА не сказано о том, что записи должны быть иерархическими. Может, вы объясните, почему это решение считается плохой практикой?

"Должны ли записи иметь родителя" — это то же самое, что "Являются ли записи иерархическими". Шаблон может содержать что угодно, но сам факт, что в нём есть цикл, который выводит и отображает архив записей, не (а) делает страницу их родителем (это просто место, где случайно находится цикл) и (б) не делает встроенный тип записи "post" иерархическим или, другими словами, не назначает родителя. Но да, вы можете выводить записи в цикле по определённым критериям (например, по общей дочерней категории).

Не принимайте на свой счет критику или уточнения к вашему вопросу или ответу. Это место, где подобное должно происходить постоянно, чтобы лучшие ответы могли выделиться и служить в качестве вики/библиотеки, куда можно прийти и моментально разобраться, как что-то сделать, или получить максимально возможное понимание того, как что-то работает. Мы даже поощряем людей (включая вас) комментировать чужие ответы. Имейте в виду, что я нигде не сказал, что ваш ответ — это плохая практика. Во многом он верен, просто утверждение о том, что это делает тип записи иерархическим, не соответствует действительности.
