从WordPress类别URL中删除Category Base

时间:2011-04-13 22:10:18

标签: php wordpress permalinks base

我在互联网上寻找解决方案,尝试了一两个插件从wordpress url中删除/ category /。

虽然其中一些插件很好,但类别链接仍显示/类别/。

此外,我已尝试在永久链接设置中的类别基本选项中输入./。

有谁知道我可以做什么像php搜索和替换或类似的东西?

4 个答案:

答案 0 :(得分:2)

http://wordpress.org/extend/plugins/wp-no-category-base/并且它不会改变永久链接,因此删除它会使结构恢复没有问题。而且您不必更改核心文件。

答案 1 :(得分:2)

使用WordPress 3.9.1(截至本文的最新版本)我只是在我的主题functions.php中添加了一行......

$wp_rewrite->add_permastruct('category_base', '%category%');

然后我打开设置>永久链接并点击保存。这似乎会刷新永久链接缓存并使其正常工作。

答案 2 :(得分:1)

更清洁的解决方案:

add_filter('user_trailingslashit', 'remcat_function');
function remcat_function($link) {
    return str_replace("/category/", "/", $link);
}
add_action('init', 'remcat_flush_rules');
function remcat_flush_rules() {
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}
add_filter('generate_rewrite_rules', 'remcat_rewrite');
function remcat_rewrite($wp_rewrite) {
    $new_rules = array('(.+)/page/(.+)/?' => 'index.php?category_name='.$wp_rewrite->preg_index(1).'&paged='.$wp_rewrite->preg_index(2));
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

答案 3 :(得分:0)

https://wordpress.org/plugins/no-category-base-wpml/是一个可解决该问题并适用于当前版本WordPress的插件。