WordPress主题去除url中的category三种方法

作者: 鲁智深 分类: wordpress 发布时间: 2013-01-28 14:58

改代码实现去除url中的category

注意以下三种方法只试用于Wordpress3.3.1版本之前(包括3.3.1)。

一.Wordpress3.2之前版本

WordPress 的文章分类网址默认显示在 category 父目录下,例如分类名为 wp ,分类链接样式则为 http://blog.com/category/wp。如果后台设置的文章静态链接结构为“/%category% /%postname%.html”,例: http://blog.com/wp/x.html,那么之前的分类链接显得不合逻辑,所有我们希望将它去掉。

对于 wordpress 中的各类问题,几乎都能找到插件解决,这个问题也不例外。但是很大一部分站长患有严重的代码控,但凡修改代码可以达到的效果绝不用插件代替,即便后者更为简单。所以在这里介绍一个非插件的方法:
在目录 wp-includes/category-template.php 文件中搜索:

$catlink = $wp_rewrite->get_category_permastruct();

在下面添加:

$catlink = str_replace('/category', "", $catlink);

保存即可。

二.Wordpress3.2版本

在目录 wp-includes/category-template.php 文件中搜索:

function get_category_link( $category )

在最后的

return $category;

之前加入

$category = str_replace('/category', "", $category);

保存即可。

三.Wordpress3.3.1版本

同样位置:

function get_category_link( $category ) {
 if ( ! is_object( $category ) )
 $category = (int) $category;
$category = get_term_link( $category, 'category' );
if ( is_wp_error( $category ) )
 return '';
return $category;
 }

变为

function get_category_link( $category ) {
 if ( ! is_object( $category ) )
 $category = (int) $category;
$category = get_term_link( $category, 'category' );
if ( is_wp_error( $category ) )
 return '';
$category = str_replace('/category', "", $category);
 return $category;
 }

即可!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注