强制将特定模板作为默认模板

时间:2020-02-24 作者:kikaweb

[编辑:我使用卓别林主题作为父主题]

我正在处理一个子主题,我需要为所有帖子设置一个特定的模板作为默认模板(没有自定义帖子类型,只有常规帖子)。

我想明确一点:每次用户添加新帖子时,我都需要这样做;“我的自定义模板”;被选中,而不是;默认模板;。

我向原始主题的开发人员征求建议,他指给我this answer. 然后,我编辑了代码以使其适应我的情况(因为我正在处理帖子,而不是页面)。

但是,这段代码对我不起作用,默认模板仍然是默认的
这是我正在使用的代码:

    add_action(\'add_meta_boxes\', \'my_default_page_template\', 1);
function my_default_page_template() {

    global $post;
    if ( \'post\' == $post->post_type 
        && 0 != count( get_page_templates( $post ) ) 
        && get_option( \'page_for_posts\' ) != $post->ID // Not the page for listing posts
        && \'\' == $post->page_template // Only when page_template is not set
    ) {
        $post->page_template = "my-custom-template.php";
    }

}
我确信我遗漏了一些东西,但我不是编码专家,需要有人给我指出正确的方向(并可能向我解释我做错了什么,以便我能学到一些东西)。

提前谢谢。

1 个回复
SO网友:Tom J Nowell

而不是设置yourtemplate.php 作为默认设置,为什么不更改默认模板,并将原始默认设置放入yourtemplate.php? 又叫交换?

否则,你将不得不重新浏览所有帖子并对其进行更改,然后再使用可能无法100%正常工作的复杂过滤器

相关推荐

使用MENU_POSITION在Dashboard和Posts之间添加两个条目

我们希望在仪表板和帖子之间添加两个新的(自定义帖子类型)条目。在本项目中,对于最终用户,有两项by far 他的仪表板中使用最多的项目。所以我们希望他们在最高层。这些似乎是内置的menu_position 设置:这只提供一个插槽,menu\\u位置=3, 在仪表板和立柱之间。我们需要two 插槽!我们的尝试:1) 有时建议使用小数作为字符串(即3.1和3.2)。但这在当前的WordPress中肯定不起作用。我们的菜单项下拉到默认位置。2) 将两者都设置为3。这是不允许的。这会导致其中一个下降到默认位置。