首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将自定义模板分配给静态博客页面

将自定义模板分配给静态博客页面
EN

Stack Overflow用户
提问于 2015-02-10 17:11:24
回答 3查看 273关注 0票数 0

我正在寻找最好的解决方案,为WordPress中的博客页面创建自定义布局。

您通常会从admin中的模板metabox中选择一个自定义页面模板来更改页面布局,这对静态博客页面不起作用。

默认情况下,WordPress模板层次结构正在查找home.php,然后查找要显示的index.php,它根本不检查自定义页面模板。在这里查看模板层次结构。 WordPress还注意到了关于博客页面的这一点:

不要对此页使用自定义页模板。模板文件home.php或index.php将用于在主题中生成此页面。

我个人觉得这很奇怪。如果有一个页面,我想有不同的布局可用,这是博客列表。

我目前也是唯一的解决方案是创建一个名为"Blog布局“的新的metabox。然后,我的home.php根据metabox设置的值加载一个自定义模板部件。虽然我确信这会奏效,但是知道WordPress为设置页面模板提供了自己的metabox,感觉有点烦人。

如果有人有更好的建议,我很高兴能读到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-25 13:10:01

您可以利用模板metabox。

代码语言:javascript
复制
<?php

function get_blog_template() {
    // Get the template metabox value from the page used as post archive. 
    $template_file = get_post_meta(get_option('page_for_posts'), '_wp_page_template', true);
    if ($template_file == 'templates/blog-small.php') {
        get_template_part('templates/blog', 'small');
    } elseif ($template_file == 'templates/blog-wide.php') {
        get_template_part('templates/blog', 'wide');
    } else {
        echo 'Sorry, no template is found';
    }
}

?>

然后调用home.php中的函数

代码语言:javascript
复制
<?php get_blog_template(); ?>
票数 1
EN

Stack Overflow用户

发布于 2015-02-10 17:19:44

如果站点只有页面和帖子,那么只要您有一个页面的index.php文件,只编辑page.php就可以了。不需要创建另一个模板文件。

票数 0
EN

Stack Overflow用户

发布于 2015-02-10 18:17:28

您可以为特定类别创建特定模板。

模板

您最好的选择是将您想要的文章进行不同样式的分类,然后为该类别创建一个模板。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28437677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档