我正在尝试为我的自定义帖子类型构建一个模板文件,该模板文件对于父帖子、子帖子和子帖子的子帖子是不同的。
我能找到的最好的代码是以下代码:
if( $post->post_parent !== 0 ) {
get_template_part(\'content\', \'child\');
} else {
get_template_part(\'content\');
}
唯一的问题是它只适用于父级>子级。
有没有什么方法可以让“父”>“子”>“子”这样做?
最合适的回答,由SO网友:Pieter Goosen 整理而成
以下是一个基本想法:
页面父级所在的任何页面($post->post_parent
) 是0
, 这意味着该页面是顶级页面。如果存在任何其他值,则该页是另一页的子页。该值是特定页面的子页面ID。
根据以上信息,我们可以使用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
}
}