如何通过3级自定义分类法阅读Wordpress永久链接?

时间:2019-05-16 01:31:20

标签: php wordpress taxonomy

当前,我正在创建一个具有自己的自定义分类法的CPT。它可以选择父母和孩子。但是,当我创建新闻帖子时,按层次结构排序的分类法只会选择最后一个子级。

我试图将层次结构设置为false,将'with_front'=>更改为false,在'rewrite'=> array('slug'=>'what-we-do /%wwd- category%/%wwd-category%'),但其结果类似于'localhost / CPT / taxo1 / taxo1 / article',并在2个地方重复了最后一个孩子。

function codex_custom_init() {
  $args = array(
    'public' => true,
    'label'  => 'What we do',
    'has_archive' => 'what-we-do',
    'query_var' => true,
    'rewrite' => array('slug' => 'what-we-do/%wwd-category%'),
    'taxonomies' => array( 'wwd-category' ),
    'supports'           => array( 'title', 'editor', 'thumbnail', 'revisions' ),
  );
  register_post_type( 'what-we-do', $args );

  register_taxonomy(
      'wwd-category',
      'what-we-do',
      array(
        'label' => __( 'Categories WWD' ),
        'hierarchical' => true,
        'query_var' => true,
        'rewrite' => array( 'slug' => 'what-we-do', 'with-front' => false)
      )
  );
}

add_action( 'init', 'codex_custom_init' ,1);

function tm_wwd_category_post_link( $post_link, $id = 0 ){ 
  $post = get_post($id);  
      $terms = wp_get_object_terms( $post->ID, 'wwd-category' );
      if( $terms ){
          return str_replace( '%wwd-category%' , $terms[0]->slug , $post_link );
} else {
    return str_replace( '%wwd-category%/' , '' , $post_link );
}

  return $post_link;  
}
add_filter( 'post_type_link', 'tm_wwd_category_post_link', 1, 3 );

我目前达到的结果是

* http:// localhost / CPTUI / custom-taxonomy / postname。

但是我想要达到的实际结果是

* http:// localhost / CPTUI / parent / parent-child / child / postname /

感谢您的时间回答这个问题。

Parent-Child level for customtaxonomy

The order before publishing the new post

The order on permalink only shows the last of the taxonomy

The hierarchical is pushing selected taxonomy out-of-order

1 个答案:

答案 0 :(得分:0)

我已经找到答案了,使用名为WP Better Permalinks的Wordpress插件。