Добрый день, я создал кастомный тип записей с рубриками, и не могу понять как модернизировать их чпу... Для записей мне нужен такой чпу: site.com/specialists/url записи в данный момент добавляется еще адрес категории, и я не могу понять как ее убрать из чпу, удалял add_filter('post_type_link', 'faq_permalink', 1, 2); и в чпу нет адреса категории, но и запись не открывается... Для рубрик сейчас такой: site.com/specialists/url рубрики - так и нужно, менять его не нужно И нужен общий архив записей specialists, он работает сейчас по адресу: site.com/specialists/, НО, стоит добавить какой-то GET запрос, например site.com/specialists/?search=bon, то страница перестает работать, вп ее просто не обрабатывает почему-то(Страница не найдена.)... Заранее спасибо за помощь! Код функции: PHP: add_action( 'init', 'create_news_post_type_specialists' ); function create_news_post_type_specialists() { register_taxonomy('procedure', array('specialists'), array( 'label' => 'Процедуры', // определяется параметром $labels->name 'labels' => array( 'name' => 'Процедуры', 'singular_name' => 'Процедуры', 'search_items' => 'Искать Процедуры', 'all_items' => 'Все Процедуры', 'parent_item' => 'Родит. раздел Процедуры', 'parent_item_colon' => 'Родит. раздел Процедуры:', 'edit_item' => 'Ред. Раздел Процедуры', 'update_item' => 'Обновить Раздел Процедуры', 'add_new_item' => 'Добавить Раздел Процедуры', 'new_item_name' => 'Новый Раздел Процедуры', 'menu_name' => 'Раздел Процедуры', ), 'description' => 'Процедуры', // описание таксономии 'public' => true, 'show_in_nav_menus' => false, // равен аргументу public 'show_ui' => true, // равен аргументу public 'show_tagcloud' => false, // равен аргументу show_ui 'hierarchical' => true, 'rewrite' => array('slug'=>'specialists', 'hierarchical'=>false, 'with_front'=>false, 'feed'=>false ), 'show_admin_column' => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5) ) ); register_post_type('specialists', array( 'label' => 'Специалисты', 'labels' => array( 'name' => 'Специалисты', 'singular_name' => 'Специалисты', 'menu_name' => 'Специалисты', 'all_items' => 'Все Специалисты', 'add_new' => 'Добавить Специалисты', 'add_new_item' => 'Добавить нового Специалисты', 'edit' => 'Редактировать', 'edit_item' => 'Редактировать Специалисты', 'new_item' => 'Новый Специалисты', ), 'description' => '', 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_rest' => false, 'rest_base' => '', 'show_in_menu' => true, 'exclude_from_search' => false, 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'rewrite' => array( 'slug'=>'specialists/%procedure%', 'hierarchical'=>false, 'with_front'=>true, 'feed'=>false ), 'has_archive' => 'specialists', 'query_var' => true, 'supports' => array( 'title','editor','author','thumbnail','excerpt','comments' ), 'menu_icon' => 'dashicons-images-alt2', 'menu_position' => 4, 'taxonomies' => array( 'procedure' ), ) ); flush_rewrite_rules(false); //Специальная функция, которая сделает так, чтобы изменения вступили в силу сразу же (не нужно было обновлять настройки с постоянными ссылками) } ## Отфильтруем ЧПУ произвольного типа // фильтр: apply_filters( 'post_type_link', $post_link, $post, $leavename, $sample ); add_filter('post_type_link', 'faq_permalink', 1, 2); function faq_permalink( $permalink, $post ){ // выходим если это не наш тип записи: без холдера %products% if( strpos($permalink, '%procedure%') === false ) return $permalink; // Получаем элементы таксы $terms = get_the_terms($post, 'procedure'); // если есть элемент заменим холдер if( ! is_wp_error($terms) && !empty($terms) && is_object($terms[0]) ) $term_slug = array_pop($terms)->slug; // элемента нет, а должен быть... else $term_slug = 'no-procedure'; return str_replace('%procedure%', $term_slug, $permalink ); }