如何为同一帖子类型创建两个不同的single.php?

时间:2015-11-18 13:02:48

标签: wordpress

我有一个名为'Property'的帖子类型。 我想以两种不同的方式展示单一帖子。 如果有人点击帖子,那么它将显示一个名称为帖子和描述的简单布局。

现在我也有床的类别。现在,如果有人进入类别'2 Bed',那么您可以查看包含'2 Bed'类别('its done')的所有帖子。但现在如果有人点击帖子那么它必须显示不同的单页。

我的英语很差,请原谅。

4 个答案:

答案 0 :(得分:2)

您可以使用single_template挂钩为单个类别设置单个模板。

将它放在你的functions.php文件中:

function my_category_templates($single_template) {
    global $post;

    if ( in_category( 'property' )) {
        $single_template = dirname( __FILE__ ) . '/single-property.php';
    }

    // Copy the above for your other categories

    return $single_template;
}

add_filter( "single_template", "my_category_templates" );

然后,您可以为每个类别创建单独的单个模板,只需添加更多条件并将其指向您创建的模板。

答案 1 :(得分:0)

有类别模板的概念,如下所示 模板层次结构但是因为你在询问如何显示"单个"发布基于类别,您将需要使用模板文件中的in_category()条件标签来显示单个帖子。 Loop文章有一个使用in_category的例子。

或者看看这个概念: http://www.nathanrice.net/blog/wordpress-single-post-templates/

或者这个: http://justintadlock.com/archives/2008/12/06/creating-single-post-templates-in-wordpress

或者这个插件: http://wordpress.org/extend/plugins/custom-post-template/

或者这个插件: http://guff.szub.net/2005/07/21/post-templates-by-category/

答案 2 :(得分:0)

因此,根据Wordpress模板层次结构,只有一个single.php,不能按类别分隔(例如存档页面。)

https://developer.wordpress.org/themes/basics/template-hierarchy/

因此,在这种情况下,我建议您阅读single.php文件中的当前类别ID,然后根据需要调整内容。您可以使用get_the_category()执行此操作(参考:https://developer.wordpress.org/reference/functions/get_the_category/),它将返回一个包含类别的数组。在我的简单示例中,我只选择第一个类别来执行某些操作:

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
if($category_id == 1) echo 'do something here';

答案 3 :(得分:0)

谢谢你的帮助。我自己完成了。 我为简单格式创建了single.php,并且在类别结果中,我没有使用the_permalink并调用post的id并创建了一个像http://localhost/demo/page?id= $ id

的网址