Шаблон для дочерних страниц/подстраниц


Я пытаюсь создать файл шаблона для своего пользовательского типа публикации, который отличается для родительской, дочерней и дочерней публикации ребенка.

Лучшее, что я смог найти, - это следующий код:

if( $post->post_parent !== 0 ) {
    get_template_part('content', 'child');
} else {
    get_template_part('content');
}

Единственная проблема с этим заключается в том, что это работает только для родителя > Ребенка.

Есть ли какой-нибудь способ заставить это работать для родителя > Ребенка > Ребенка?

Author: Pieter Goosen, 2015-02-06

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

    }

}
 0
Author: Pieter Goosen, 2015-02-06 06:10:51