1

我有以下自定义帖子类型和自定义分类设置:

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 中包含自定义分类名称?

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

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

我怎样才能使它看起来像下面这样?

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

我试过去那个 URL,但它只给出 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;
} ?>
4

1 回答 1

1

我以前使用这篇文章来实现这一点。通过category-slug,我假设您的意思是您拥有的自定义帖子类型的分类法?

于 2012-10-24T12:52:47.013 回答