从WordPress网址中删除类别和标记库 - 没有插件

cos*_*not 45 wordpress base categories

我想从wordpress URL中删除类别和标记库.我遇到过使用插件的其他帖子和解决方案.我想远离插件并从functions.php中获得解决方案.这将阻止任何未来的插件更新或wordpress默认文件被更改.

任何帮助,将不胜感激.谢谢!

到目前为止我尝试过这些解决方案:

opt*_*tes 56

我喜欢这个解决方案:

如果/category/要从网址中删除,请执行以下两个步骤:

  1. 转到设置>>永久链接并选择自定义并输入: /%category%/%postname%/
  2. 接下来将您的类别库设置为 .

保存它,您将看到您的URL更改为以下格式:http:/yourblog.com/quotes/

(来源:http://premium.wpmudev.org/blog/daily-tip-quick-trick-to-remove-category-from-wordpress-url/)

  • 使用此解决方案时,使用页面列出标记为给定类别的帖子时分页会中断(WP 4.4.2,使用.作为类别基础) (9认同)
  • 在处理分页时,我可以确认这在4.6.1中有所突破. (5认同)
  • @gmaggio只需使用`.`而不是`/`,它就能正常工作. (4认同)
  • 要从链接中删除`/./`,请使用以下过滤器:`add_filter('term_link',function($ termlink){return str_replace('/./','/',$ termlink);},10,1 );` (3认同)
  • 这会破坏分页。当您尝试导航到 /page/2 时出现错误 404 (2认同)

pau*_*dru 18

如果您使用Yoast SEO插件,请转到:

Search Appearance > Taxonomies > Category URLs.
Run Code Online (Sandbox Code Playgroud)

并选择removeStrip the category base (usually /category/) from the category URL.

关于标签删除我还没有找到任何解决方案.

  • 截至2017年4月13日,这样做的"点"方法打破了Wordpress 4.6及更高版本的许多功能.换句话说,它不再是一个可行的解决方案.然而,Yoast毫不费力地管理着这一点.安装插件,启用该功能,它完美无瑕.此外,您还可以获得一个很棒的插件来管理您的很多网站.赢了! (6认同)
  • 但问题是如何在没有插件的情况下制作它? (5认同)
  • 在最新版本(经过测试的版本9)中,此选项现在隐藏在“搜索外观>分类法>类别URL”下。 (2认同)

Ani*_*gel 17

虽然您将其视为一种解决方案,但该插件是迄今为止最简单,最一致的方法,它们不会更改任何wordpress默认文件.

http://wordpress.org/plugins/wp-no-category-base/

它不需要更新一年,因此它不会完全导致任何更新问题.

没有简单的手动解决方案可以完成所有这些,而不仅仅是在您自己的函数中复制插件的功能.php

  • 更好,更合理的永久链接,如myblog.com/my-category/和myblog.com/my-category/my-post/.
  • 简单的插件 - 几乎不增加任何开销.
  • 开箱即用 - 无需设置.无需修改wordpress文件.
  • 不需要其他插件工作.
  • 与站点地图插件兼容.
  • 适用于多个子类别.
  • 适用于WordPress Multisite.
  • 将旧类别永久链接重定向到新类别(301重定向,适用于SEO).

另外,如果wordpress确实发生了变化,那么你将获得这样的好处,然后插件将更新为工作,然后你必须弄清楚如何自己修复自己的代码.

  • 欧普要求回答"没有插件" (5认同)
  • 这是一个更新的替代方案:[**删除类别网址**](https://wordpress.org/plugins/remove-category-url/) (4认同)
  • 插件不存在了 (3认同)
  • 站点上的插件太多会导致问题,并且难以使用Wordpress主题的版本控制(如git).所以理想情况下,这将完成 (2认同)

小智 17

  1. 设置自定义结构:/%postname%/
  2. 设置类别基数:.(点不是/)

  3. 保存.100%正常工作.

  • 这使得类别消失,但如果我按下该新链接,它会将我重定向到不存在的页面.为什么? (3认同)

小智 5

而是将其放在您的functions.php中可以正常工作,没有重定向问题。

function fix_slash( $string, $type )
{
global $wp_rewrite;
if ( $wp_rewrite->use_trailing_slashes == false )
{
    if ( $type != 'single' && $type != 'category' )
        return trailingslashit( $string );

    if ( $type == 'single' && ( strpos( $string, '.html/' ) !== false ) )
        return trailingslashit( $string );

    if ( $type == 'category' && ( strpos( $string, 'category' ) !== false ) )
    {
        $aa_g = str_replace( "/category/", "/", $string );
        return trailingslashit( $aa_g );
    }
    if ( $type == 'category' )
        return trailingslashit( $string );
}
return $string;
}

add_filter( 'user_trailingslashit', 'fix_slash', 55, 2 );
Run Code Online (Sandbox Code Playgroud)

  • 伟大的解决方案**没有插件**!正是我所需要的! (2认同)