Specify parent page template

时间:2014-06-05 作者:Accore LTD

我不想从管理员那里定义模板,因为我有很多页面,所以如果我更改它,我可能会忘记我选择的模板。

所以我想在页面中创建该模板。

这是我的页面结构

芒果(第页)

-橙色(父页)

--石灰(父页)

对于我的mango和所有父页面,我将使用相同的模板,但我不想通过从admin中为每个页面选择一个模板来实现这一点。我想在函数中定义它。php或页面。php与get_template_part 或任何其他方式。例如,如果酸橙/芒果/橘子或下面的任何东西mango 第页,然后get_template_part 将使用mango 所以我的模板将是芒果。php。

对此有什么建议吗?

我不确定这会不会引起骚动

1 个回复
最合适的回答,由SO网友:Milo 整理而成

所有类型的模板都有filters 以控制加载的模板。对于页面,有page_template, 您可以查看的位置the queried page 或查看ID是否存在于an array of a page\'s ancestor IDs.

function wpd_page_template_filter( $template ){
    // the ID of Mango page
    $parent_page = 20;

    if( $parent_page == get_queried_object_id()
        || in_array( $parent_page, get_ancestors( get_queried_object_id(), \'page\' ) ) ){
        $template = locate_template( \'mango.php\', false );
    }
    return $template;
}
add_filter( \'page_template\', \'wpd_page_template_filter\' );

结束

相关推荐

HTML Redirect to WP pages

我有一些预定义的链接,需要重定向到WP安装中的真实URL。不幸的是,我别无选择,只能使用提供给我的这些URL。格式为:http://mysite.com/redirect.html?p=pagenameWP安装在mysite的根目录下。com。我需要获取pagename查询变量,它不会与页面URL直接匹配,并将其重定向(301)到WP permalink。我尝试了几件事。htaccess具有重写功能,但运气不佳,这主要是因为还有WP permalinks重定向。有人以前做过这件事,或者知道最好的方法吗?更