我正在寻找为WordPress中的博客页面创建自定义布局的最佳解决方案。
您通常会在admin中的“模板”元框中选择自定义页面模板来更改页面布局,但这对静态博客页面不起作用。
默认情况下,WordPress模板层次结构正在寻找home.php然后再显示index.php,它根本不会检查自定义页面模板。 View the Template Hierarchy here. WordPress codex还注意到有关博客页面的信息:
请勿对此页面使用自定义页面模板。模板文件home.php或index.php将用于在主题中生成此页面。
我个人觉得这很奇怪。如果有一个页面,我希望有不同的布局,那就是博客列表。
我目前唯一的解决方案是创建一个名为“Blog Layouts”的新元数据集。然后,我的home.php根据元数据设置的值加载自定义模板部件。虽然我确信这会起作用,但是知道WordPress提供了自己的用于设置页面模板的元数据,这感觉有些神奇。
如果有人有更好的建议,我很高兴看到它们。
答案 0 :(得分:1)
您可以利用模板元框。
<?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(); ?>
答案 1 :(得分:0)
如果网站只有网页和帖子,那么只要你有一个page.php文件页面,就可以编辑index.php。无需创建另一个模板文件。
答案 2 :(得分:0)