我需要我的自定义分类术语模板

时间:2012-01-22 作者:sajid

我创建了一个自定义分类法slug是“event\\u type”,并创建了诸如社会、教育和宗教等术语。我想有一个模板页面,我可以显示这些条款相关的帖子。您可以说我需要访问此url:http://localhost/test/event_type/social/

如何为此和此url创建模板http://localhost/test/event_type/

此分类法与名为“event”的自定义帖子类型相关

有什么帮助吗

2 个回复
SO网友:mor7ifer

我想你要找的是Template Hierarchy. 您应该能够使用taxonomy-event\\u type。php来做你想做的事情。

SO网友:Brad Farleigh

我在his blog 它允许您基于类别(slug和id)、作者或标记创建单个帖子模板。

我修改的代码如下:

/**
* Filter the single_template with our custom function
*/
add_filter(\'single_template\', \'my_single_template\');

/**
* Single template function which will choose our template
*/
 function my_single_template($single) {
    global $wp_query, $post;

    /**
    * Checks for single template by custom taxonomy \'event_types\'
    * Change \'event_types\' to whatever your custom taxonomy is called
    * Check by category slug and ID
    */

    //Only change \'event\' post type
    if( \'event\' != get_post_type($post) )
       return $single;

    //Where your single fiels are located inside your theme
    $single_template_path = get_stylesheet_directory().\'/single/\';

    //Get the taxonomy terms
    $cats = get_the_terms($post->ID,\'event_types\');
    if ( !$cats )
       return $single;

    foreach( $cats as $cat ) :

        if(file_exists($single_template_path . \'/single-cat-\' . $cat->slug . \'.php\'))
            return $single_template_path . \'/single-cat-\' . $cat->slug . \'.php\';

        elseif(file_exists($single_template_path . \'/single-cat-\' . $cat->term_id . \'.php\'))
            return $single_template_path  . \'/single-cat-\' . $cat->term_id . \'.php\';

    endforeach;
    return $single;

}
然后将新的自定义模板文件添加到/wp-content/themes/your-template-name/single, 相应地命名它们。

使用此函数,可以为名为featured 在自定义分类中event_types 通过创建名为single-cat-featured.php

结束

相关推荐

Custom Post Type Templates?

是否可以为自定义帖子类型设置模板?例如,您有一个具有4种不同布局变体的公文包页面,您希望用户能够选择此帖子/页面所需的布局?想知道你们这些好人有没有办法?谢谢:)