从WordPress类别中删除类别的网址类别URL

从WordPress类别中删除类别的网址类别URL

问题描述:

为了解决这个问题,我在互联网上钓鱼,尝试了一两个插件来从wordpress网址中删除/ category /。从WordPress类别中删除类别的网址类别URL

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

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

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

+0

看起来很有希望 - http://pitumbo.com/remove-category-and-or-tag-url-wordpress-3 – stealthyninja 2011-04-13 22:47:37

+0

不是我在找什么。我采取了编辑rewrite.php核心文件。问题解决了。 – daryl 2011-04-13 22:50:22

+0

“问题解决了。”事实上,通过改变WP核心,问题变得更加复杂。 – markratledge 2011-04-15 16:44:41

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

+0

是的,我已经尝试过这个插件。它没有做我想做的事情,因为它仍然在HTML中显示带有/ category的HTML链接,虽然它重定向到没有/ category的页面。 – daryl 2011-04-15 17:39:34

一个清洁的解决方案:

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; 
} 

使用WordPress 3.9.1(最新版本为这篇文章的)我只是简单地添加一行到我的主题的functions.php ...

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

然后我打开设置>固定链接并点击保存。这似乎刷新固定链接缓存并使其工作。