Remova a subcategoria e a categoria com algumas regras do permalink

Minha opção atual para permalink é definida para /% category% /% postname% /:

Eu tenho uma categoria ‘stati’ e categoria pai ‘italian’, ‘german’ . Esta categoria pai tem alguma outra categoria pai, por exemplo:

  • test.com/category/stati/italian/A/B/…/postname
  • test.com/category/stati/german/A/B/…/postname

Eu preciso remover apenas esta parte “category / stati /” , o link deve aparecer assim:

  • test.com/italian/A/B/…/postname
  • test.com/german/A/B/…/postname

Mas eu preciso de seguir as próximas regras:

1) se chegarmos à categoria “stati” sem subcategoria (test.com/category/stati/) eu preciso remover apenas “categoria” – test.com/stati/

2) todas as minhas postagens publicadas têm o próximo link:

  • test.com/stati/italian/postname,

Eu preciso mudar o link desta postagem se permanecermos na subcategoria atual para abrir esta postagem normal.

  • test.com/stati/italian/A/…/postname to -> test.com/italian/A/…/postname

Eu escrevo um código simples

// Remove category base add_filter('category_link', 'no_category_parents',1000,2); function no_category_parents($catlink, $category_id) { $category = &get_category( $category_id ); if ( is_wp_error( $category ) ) return $category; $category_nicename = $category->slug; $category_parent = get_category($category->parent)->slug; // If we have parent category and != 'stati' then add it to link and remove 'category' // test.com/category/stati/italian/A to -> test.com/italian/A // else this category is main category 'stati' left it and remove 'category' // test.com/category/stati to -> test.com/stati if ( $category_parent && 'stati' != $category_parent){ $catlink = trailingslashit(get_option( 'home' )). trailingslashit( $category_parent ) . user_trailingslashit( $category_nicename, 'category' ); }else{ $catlink = trailingslashit(get_option( 'home' )) . user_trailingslashit( $category_nicename, 'category' ); } return $catlink; } 

Parte do meu código funciona, mas quando eu venho para a subcategoria ‘A’ (test.com/italian/A), eu recebo uma página 404. Talvez eu precise escrever algumas regras de reescrita para a categoria pai, mas como isso está acontecendo?

Obrigado!

Solutions Collecting From Web of "Remova a subcategoria e a categoria com algumas regras do permalink"