!本文可能超过2年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本文不保证相应的技术更新和实践可操作性。
WordPress默认的子分类连接前都带有父分类的别名,通过这个修改可以让子分类的的链接和一级分类一样。具体看本博客。
方法一:把以下代码丢到皮肤目录的functions.phpadd_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就是为了折腾嘛。