最新消息:2016-11-22由WordPress转到Typecho

修改子分类链接与一级分类一样

PHP 情留メ蚊子 16075浏览
!本文可能 超过2年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本文不保证相应的技术更新和实践可操作性。

WordPress默认的子分类连接前都带有父分类的别名,通过这个修改可以让子分类的的链接和一级分类一样。具体看本博客。

方法一:把以下代码丢到皮肤目录的functions.php

add_filter('category_link', 'removecategorylink'); 
function removecategorylink($link) { 
    if (strpos($link, 'category/') === false) { 
        return $link; 
    }  
    $new = substr($link, strpos($link, 'category/') + 9); 
    if (strpos($new, '/') === false) { 
        return $link; 
    }  
    $arr = explode("/", $new); 
    $newlink = substr($link, 0, strpos($link, 'category/') + 9) . $arr[count($arr) - 1]; 
    return $newlink; 
} 

方法二:打开wp-includes/taxonomy.php

在get_term_link函数中找到(大概在2968行)

$termlink = str_replace("%$taxonomy%", implode('/', $hierarchical_slugs), $termlink); 

改成

if ( 'category' == $taxonomy && count($hierarchical_slugs) > 1){ 
    $termlink = str_replace("%$taxonomy%", $hierarchical_slugs[count($hierarchical_slugs) - 1], $termlink); 
} else { 
    $termlink = str_replace("%$taxonomy%", implode('/', $hierarchical_slugs), $termlink); 
} 

这样就OK了。

本人是一个爱折腾的人,比较喜欢修改源文件达到自己的要求。玩WordPress就是为了折腾嘛。

加载中……