Шаблон для дочерних страниц/подстраниц
Я пытаюсь создать файл шаблона для своего пользовательского типа публикации, который отличается для родительской, дочерней и дочерней публикации ребенка.
Лучшее, что я смог найти, - это следующий код:
if( $post->post_parent !== 0 ) {
get_template_part('content', 'child');
} else {
get_template_part('content');
}
Единственная проблема с этим заключается в том, что это работает только для родителя > Ребенка.
Есть ли какой-нибудь способ заставить это работать для родителя > Ребенка > Ребенка?
1 answers
Вот основная идея:
Любая страница, на которой родительская страница ($post->post_parent
) является 0
, это означает, что страница является страницей верхнего уровня. Если существует какое-либо другое значение, страница является дочерней по отношению к другой странице. Это значение является идентификатором страницы, дочерней для которой является конкретная страница.
С помощью приведенной выше информации мы можем вычислить, является ли страница дочерней или дочерней, используя get_post
и возвращенные свойства WP_Post
.
Вы можете попробовать следующее: ( ПРЕДОСТЕРЕЖЕНИЕ: Непроверенный)
if ($post->post_parent === 0) {
//Do something for post parent
} else {
$q = get_post($post->post_parent);
if ($q->post_parent === 0) {
//Do something for direct child
} else {
// Do something for grand child
}
}