如何在没有插件的情况下从特定类别的帖子的 URL 中删除日期?

Posted

技术标签:

【中文标题】如何在没有插件的情况下从特定类别的帖子的 URL 中删除日期?【英文标题】:How to remove the date from the URL of a post in a specific category, without plugin? 【发布时间】:2021-11-08 10:15:36 【问题描述】:

我需要一些帮助才能找到仅从特定类别的帖子中删除 url 日期的解决方案。

我的永久链接设置如下:

 /%year%/%monthnum%/%day%/%category%/%postname%/

category-x 帖子具有以下 url:

http://mysite/2021/08/25/category-x/post-name/

我只需要 category-x 帖子,网址如下所示:

http://mysite/category-x/post-name/

其他帖子将保留网址中的日期。

我尝试使用 rewrite_rules_array 和 post_link 过滤器做一些事情,但没有成功。

我该如何解决?

【问题讨论】:

也许 WordPress 堆栈更适合这个问题? wordpress.stackexchange.com 【参考方案1】:

我是这样解决的:

add_filter( 'post_link', function( $permalink, $post, $leavename )
    $category = get_the_category($post->ID);    
    if (  !empty($category) && $category[0]->slug == "category-x" ) 
        $permalink = trailingslashit( home_url('/category-x/'. $post->post_name . '/' ) );
    
    return $permalink;
, 10, 3 ); 

add_action('generate_rewrite_rules',function( $wp_rewrite ) 
    $new_rules['^category-x/([^/]+)/?$'] = 'index.php?name=$matches[1]';
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
    return $wp_rewrite;
);

还是谢谢你!

【讨论】:

【参考方案2】:

更改类别基本前缀

在更改类别基本前缀后尝试重定向

【讨论】:

感谢您的帮助,但这并不是我所需要的。所有帖子都必须保留带有日期的url结构,“category-x”帖子除外。

以上是关于如何在没有插件的情况下从特定类别的帖子的 URL 中删除日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 single.php 的情况下从 wordpress 帖子中删除特色图片

如何在没有 instagram API 的情况下从 instagram 获取公共用户的所有帖子

如何在没有 \n 的情况下从 txt 中获取特定行(Python)

如何在没有项目的情况下从 Mojo 插件的 pom.xml 设置 Mojo 参数

Rails RESTful URL:特定类别下的所有帖子

Flutter 如何在没有任何第三方库的情况下从 url 下载文件