我在互联网上寻找解决方案,尝试使用一两个插件从 wordpress url 中删除 /category/。
虽然其中一些插件很好,但类别链接仍然显示 /category/。
我还尝试将 ./ 放入永久链接设置的类别基本选项中。
有谁知道我怎么能像 php 搜索和替换或类似的东西?
我在互联网上寻找解决方案,尝试使用一两个插件从 wordpress url 中删除 /category/。
虽然其中一些插件很好,但类别链接仍然显示 /category/。
我还尝试将 ./ 放入永久链接设置的类别基本选项中。
有谁知道我怎么能像 php 搜索和替换或类似的东西?
更清洁的解决方案:
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%');
然后我打开Settings > Permalinks并点击Save。这似乎会刷新永久链接缓存并使其工作。
http://wordpress.org/extend/plugins/wp-no-category-base/并且它不会改变永久链接,因此删除它可以毫无问题地恢复结构。而且您不必更改核心文件。
https://wordpress.org/plugins/no-category-base-wpml/是一个插件,可以解决问题并适用于当前版本的 WordPress。