从 WordPress 类别 URL 中删除类别库

发布于 2024-11-01 07:41:30 字数 191 浏览 0 评论 0原文

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

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

我还尝试在永久链接设置的类别基本选项中放入 ./ 。

有谁知道我该怎么做,比如 php 搜索和替换或类似的事情?

I fished around the internet for a solution to this, tried a plugin or two to remove the /category/ from wordpress url's.

While some of these plugins are good, the category link still display's /category/.

Also I've tried putting in ./ in the category base options in permalinks settings.

Does anyone know how I could do like a php search and replace or something like that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

兮子 2024-11-08 07:41:30

更清洁的解决方案:

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

A cleaner solution:

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;
}
随波逐流 2024-11-08 07:41:30

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

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

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

Using WordPress 3.9.1 (latest version as of this post) I simply added a single line to my theme's functions.php...

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

Then I opened Settings > Permalinks and hit Save. This appears to flush the permalink cache and makes it work.

飘过的浮云 2024-11-08 07:41:30

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

http://wordpress.org/extend/plugins/wp-no-category-base/ and it doesn't alter permalinks, so removing it reverts the structure with no problem. And you don't have to alter core files.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文