在网址中包含分类法slug?

时间:2012-10-24 12:13:45

标签: wordpress permalinks custom-taxonomy

我有以下自定义的后期类型和自定义分类设置:

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'system',
        array(
            'labels' => array(
                'name' => __( 'Systems' ),
                'singular_name' => __( 'System' )
            ),
        'capability_type' => 'post',
        'supports' => array('title','editor','comments'),   
        'public' => true,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'system' ),
        )
    );
}

function news_init() {
    register_taxonomy(
        'system',
        'system',
        array(
            'label' => __( 'Product Category' ),
            'sort' => true,
            'hierarchical' => true,
            'args' => array( 'orderby' => 'term_order' ),
            'rewrite' => array( 'slug' => 'products' )
        )
    );  
}
add_action( 'init', 'news_init' );

是否可以在URL中包含自定义分类名称?

目前,当我转到自定义帖子时,网址如下所示:

  

http://www.domain.com/products/(post-name)/

如何让它看起来如下?

  

http://www.domain.com/(category-slug)/(post-name)/

我已尝试访问该网址,但它只提供了404.我只是设置了标准存档模板。

(请不要将我的问题迁移到Wordpress堆栈,因为那里没有太多动作!)


更新:

我将下面的代码放在一个页面上,只是为了确保它转到正确的页面,它就是这样:

  

http://www.domain.com/products/(custom-taxonomy-slug)/

这给出了404.它似乎没有拿起模板(标准模板),我也尝试添加archive-products.php。

<?php $args = array( 'taxonomy' => 'my_term' );

$terms = get_terms('system', $args);

$count = count($terms); $i=0;
if ($count > 0) {
    $term_list = '<p class="my_term-archive">';
    foreach ($terms as $term) {
        $i++;
        $term_list .= '<a href="' . get_term_link( $term->slug, $term->taxonomy ) . '" title="' . sprintf(__('View all post filed under %s', 'my_localization_domain'), $term->name) . '">' . $term->name . '</a>';
        if ($count != $i) $term_list .= ' &middot; '; else $term_list .= '</p>';
    }
    echo $term_list;
} ?>

1 个答案:

答案 0 :(得分:1)

我之前使用this article来实现这一目标。通过category-slug,我假设您的意思是您拥有的自定义帖子类型的分类法?