子页面/子页面的模板

时间:2015-02-06 作者:Rob

我正在尝试为我的自定义帖子类型构建一个模板文件,该模板文件对于父帖子、子帖子和子帖子的子帖子是不同的。

我能找到的最好的代码是以下代码:

if( $post->post_parent !== 0 ) {
    get_template_part(\'content\', \'child\');
} else {
    get_template_part(\'content\');
}
唯一的问题是它只适用于父级>子级。

有没有什么方法可以让“父”>“子”>“子”这样做?

1 个回复
最合适的回答,由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

    }

}

结束

相关推荐

Get_Pages--父级对子级?

我正在一个非常干净和层次结构的网站上使用get\\u页面。作为模板的一部分,我想将子页面显示为模板“样板”的一部分。正在读取Codex documentation, 有两个似乎相关的参数:parent 和child_of.我一直在摆弄它们,用一个简单的转储到页面的主体,就像这样,但我看不出这两个参数有什么根本不同。。。除了给他们带来冲突的风险。例如,如果我设置child_of 至17(有效页)和parent 除了17或1。。。我得到一个空数组。这很有道理。。。但是为什么有两个参数?在扫描文档和代码时找不到