让 WordPress 子页面自动使用父页面的模板


使用 WordPress 作为一个 CMS 发布内容的时候,我们往往会给页面设置模板,以适应不同的内容,如果是属于一个栏目的内容,这个栏目的模板往往是一样的,默认情况下,我们需要给这个栏目的每个页面设置一个模板。这样做是很麻烦的,如果一个栏目的子页面非常多,要多点好多下鼠标。有没有办法偷一下懒,设置一下父页面的模板,然后子页面就自动应用了这些模板呢?

办法当然是有的,通过函数判断一个页面是否有父页面,如果有,设置一下父页面的模板为此页面的模板就可以了。

设置父页面的模板为子页面模板

 function wizhi_use_parent_template() {
    global $post;
    $curr_tmp = get_post_meta($post->ID, '_wp_page_template', true); //获取页面模板
    if($post->post_parent){
        $parent_tmp = get_post_meta($post->post_parent, '_wp_page_template', true); //如果有父页面,获取父页面模板
        update_post_meta($post->ID, '_wp_page_template', $parent_tmp, $curr_tmp); //设置子页面的模板为父页面的模板
    }
}
add_action('save_post','wizhi_use_parent_template');

此方法可能存在的问题

这种方法简单了很多,但是如果我需要为某个子页面单独设置一个模板的时候,就会出问题了,不管怎么设置,只要一保存文章,子页面模板就会自动设置为父页面的模板。

这个问题有没有办法解决呢?当然是有的,我们需要先判断一下子页面是否设置了模板,如果设置了模板,就使用当前的模板,如果没有设置,就自动使用父页面的模板。具体代码就留给智慧的网友们自己动手吧。

  • 分享:
评论
还没有评论
    发表评论 说点什么