front-page.php覆盖我的自定义页面模板WordPress

8oomwypt  于 2023-05-12  发布在  WordPress
关注(0)|答案(2)|浏览(169)

正如标题所说,我目前正在研究一个主题,我发现了一个问题。
假设我制作了一个名为test的页面,并为它提供test-page-template的自定义页面模板
到目前为止,如果我去查看页面,这工作正常,但当我将主页设置为使用我的页面作为静态主页时,问题就来了;所发生的是,它使用front-page.php而不是使用test-page-template。
最明显的解决方法是将front-page.php编辑为与test-page-template相同,但如果客户端希望选择不同的页面作为静态首页,那么这是一个糟糕的解决方案。有什么想法吗

xlpyo6sf

xlpyo6sf1#

这是因为WordPress模板层次结构。Front-page.php优先于页面模板,当涉及到博客的首页时。下面是层次结构图:

我不确定完整的需求,但我建议您在这种情况下使用index.php和页面模板。

c0vxltue

c0vxltue2#

我找到了这个问题的解决方法,虽然这是很久以前的问题,也许现在有人也需要

add_filter( "frontpage_template', 'selected_front_page_template" );

function selected_front_page_template( $template ) {

    $template_slug = get_page_template_slug();

    if( !empty($template_slug) ) {
        $template = locate_template( array( $template_slug ) );
    }

    return $template;
}

相关问题