更改类别固定链接结构

时间:2011-01-26 作者:Ben Everard

希望是另一个简单的,我有一些嵌套的类别,如下所示:

- category-a
    - category-b
         -category-c
c类的permalink如下:

http://<domain>/category/category-a/category-b/category-c/
我真正希望的是permalink不包含任何父类别,而是这样:

http://<domain>/category/category-c/
有没有办法做到这一点?我有一些类别除了将子类别分组在一起之外什么都不做,因此我真的不希望它们显示给我的用户。

非常感谢!

1 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

以下代码更改了类别存档的所有链接,使其不包括父类别:

add_filter( \'category_link\', \'wpse7807_category_link\', 10, 2 );
function wpse7807_category_link( $catlink, $category_id )
{
    global $wp_rewrite;
    $catlink = $wp_rewrite->get_category_permastruct();

    if ( empty( $catlink ) ) {
        $catlink = home_url(\'?cat=\' . $category_id);
    } else {
        $category = &get_category( $category_id );
        $category_nicename = $category->slug;

        $catlink = str_replace( \'%category%\', $category_nicename, $catlink );
        $catlink = home_url( user_trailingslashit( $catlink, \'category\' ) );
    }
    return $catlink;
}
将代码添加到functions.php 你的主题。

结束

相关推荐

WordPress删除wp_List_Categories中最后一项的分隔符

我正在尝试删除最后一个分隔符(通常是<br/> 标记,但我将其从wp\\u list\\u categories的最后一个链接更改为“/”)。基本上我想要这个:类别1//类别2//类别3//看起来像这样:类别1//类别2//类别3以下是我当前使用的代码:<?php $cat_array = array(); $args = array( \'author\' => get_the_author_meta(\'id\'),&#x