首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在根上设置类别和子类别级别。它也应该遵守作为/类别/样本- post和//sample的post规则?

如何在根上设置类别和子类别级别。它也应该遵守作为/类别/样本- post和//sample的post规则?
EN

WordPress Development用户
提问于 2023-06-01 03:18:10
回答 1查看 6关注 0票数 0

我正在使用WordPress网站。当前,Permalink设置在家庭/示例-post/和类别设置为“。目前,我的网址设置为类别,子类别和帖子如下。

类别:保险

分类别:健康保险、汽车保险

当前Permalink结构中的URL集:

  1. URl类别:家庭/保险
  2. 分类别:家庭/保险/健康保险
  3. Post URL: Home/sample-post/

I需要不同的网址结构,如

  1. 类别URL:家庭/保险
  2. 职类:家庭/保险/样本-A类
  3. 子类别网址:家庭/健康保险
  4. 分类别职位:家庭/健康-保险/样本-员额-B

and等用于其他子类别。

设置时,/%类别%/%postname%/

第一组期望的url已实现,但不适用于子类别。任何帮助都将不胜感激。我是Wordpress的新手。

EN

回答 1

WordPress Development用户

发布于 2023-06-01 14:57:08

您需要定义自己的重写标记,并将标记添加到permalink结构中。

  • 注册新结构标记的add_rewrite_tag()
  • 添加到Permalinks接口的available_permalink_structure_tags过滤器
  • post_link筛选器以更改帖子的URL

下面是未经测试和不完整的代码,但是应该会让你走得很远。

代码语言:javascript
复制
add_action( 'init', static function () {
    add_rewite_tag( '%one_category%', '(.+)', 'one_category=' );
} );

add_filter( 'available_permalink_structure_tags', function ( array $tags ) : array {
    $tags['one_category'] = 'Only one category';
    return $tags;
} );

add_filter( 'post_link', static function ( string $permalink, $post ) : string {
    if ( false === stripos( $permalink, '%one_category%' ) ) {
        return $permalink;
    }

    $categories = get_the_category( $post->ID );
    $category = array_pop( $categories );

    return str_replace( '%one_category%', $category->slug, $permalink );
}, 10, 2 );
票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/416426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档