2

是否可以根据您所在的类别显示不同的主题?

例如:

blog.example.com/category/foo -> style1.
blog.example.com/category/bar -> style2.

谷歌搜索带来了这个页面,他建议在 single.php 中这样做:

$post = $wp_query->post;
if ( in_category(5) ) {
    include(TEMPLATEPATH . '/style1.php');
} else {
    include(TEMPLATEPATH . '/style2.php');
}

这是要走的路吗?

4

1 回答 1

2

你不应该真的使用include这个。Wordpress 具有惊人的get_template_part功能,仅适用于这些情况。它具有内置的回退机制,并与您的主题很好地集成:

$categories = get_the_category();

get_template_part('for-category', $categories[0]->slug);

然后,只需使用类别 slug 命名您的文件:

blog.example.com/category/foo -> for-category-foo.php
blog.example.com/category/bar -> for-category-bar.php

请记住还有一个默认for-category.php文件,以便在您没有当前类别的自定义文件时可以回退到该文件。

于 2013-01-17T19:50:08.553 回答