@ishimskayamahorka14

Почему не работает шаблон кастомной таксономии, когда убираю slug таксономии из url?

Подскажите, пожалуйста, почему когда убираю из ссылки slug кастомной таксономии, то перестает работать шаблон taxonomy-{taxonomy_name}.php для неё?

Собственно, сама функция с помощью которой удаляется название таксономии из ссылки

add_filter('request', 'rudr_change_term_request', 1, 1 );
 
function rudr_change_term_request($query){
 
  $tax_name = 'customcat'; // specify you taxonomy name here, it can be also 'category' or 'post_tag'
 
  if( $query['attachment'] ) :
    $include_children = true;
  $name = $query['attachment'];
  else:
    $include_children = false;
  $name = $query['name'];
  endif;
 
 
  $term = get_term_by('slug', $name, $tax_name);
 
  if (isset($name) && $term && !is_wp_error($term)):
 
  if( $include_children ) {
    unset($query['attachment']);
    $parent = $term->parent;
    while( $parent ) {
      $parent_term = get_term( $parent, $tax_name);
      $name = $parent_term->slug . '/' . $name;
      $parent = $parent_term->parent;
    }
  } else {
    unset($query['name']);
  }
 
  switch( $tax_name ):
  case 'category':{
        $query['category_name'] = $name;
        break;
      }
      case 'post_tag':{
        $query['tag'] = $name;
        break;
      }
      default:{
        $query[$tax_name] = $name;
        break;
      }
      endswitch;
 
      endif;
 
      return $query;
    }
 
    add_filter( 'term_link', 'rudr_term_permalink', 10, 3 );
 
    function rudr_term_permalink( $url, $term, $taxonomy ){
 
  $taxonomy_name = 'customcat';
  $taxonomy_slug = 'customcat';
 
  if ( strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name ) return $url;
 
  $url = str_replace('/' . $taxonomy_slug, '', $url);
 
  return $url;
}
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы