我正在寻找最好的解决方案,为WordPress中的博客页面创建自定义布局。
您通常会从admin中的模板metabox中选择一个自定义页面模板来更改页面布局,这对静态博客页面不起作用。
默认情况下,WordPress模板层次结构正在查找home.php,然后查找要显示的index.php,它根本不检查自定义页面模板。在这里查看模板层次结构。 WordPress还注意到了关于博客页面的这一点:
不要对此页使用自定义页模板。模板文件home.php或index.php将用于在主题中生成此页面。
我个人觉得这很奇怪。如果有一个页面,我想有不同的布局可用,这是博客列表。
我目前也是唯一的解决方案是创建一个名为"Blog布局“的新的metabox。然后,我的home.php根据metabox设置的值加载一个自定义模板部件。虽然我确信这会奏效,但是知道WordPress为设置页面模板提供了自己的metabox,感觉有点烦人。
如果有人有更好的建议,我很高兴能读到。
发布于 2015-04-25 13:10:01
您可以利用模板metabox。
<?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中的函数
<?php get_blog_template(); ?>发布于 2015-02-10 17:19:44
如果站点只有页面和帖子,那么只要您有一个页面的index.php文件,只编辑page.php就可以了。不需要创建另一个模板文件。
发布于 2015-02-10 18:17:28
您可以为特定类别创建特定模板。
模板
您最好的选择是将您想要的文章进行不同样式的分类,然后为该类别创建一个模板。
https://stackoverflow.com/questions/28437677
复制相似问题