При создании своей кастомной таксономии у рубрик (тегов) указывается slug, который выводится в url. Например, зрегистрировали новую таксономию «kofevarki» и теперь при создании новых тегов(рубрик) видов кофеварок в их урле будет «kofevarki». Например, создали категорию в кофеварках — «samsung», то url этой страницы будет site.net/kofevarki/samsung. Так вот, этот «site.net/kofevarki/» будет возвращать ошибку «404», как и стандартные «site.net/tag/».
Чтобы удалить эту ненужную составляющую из url, необходимо в function.php вставить код, который взят на cyberforum.ru у пользователя tatynechka под свои нужды (Код рабочий):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function true_post_type_rewrite() {
global $wp_rewrite;
// а в моем случае тип таксаномии был – Авторы (autors)
// этот код даст возможность перезаписать урлы
// параметры add_rewrite_tag(‘%название_тега%’, ‘%маска_символов%’, ‘%url_параметр%’)
$wp_rewrite–>add_rewrite_tag(“%autors%”, ‘([^/]+)’, “autors=”);
$wp_rewrite–>add_permastruct(‘autors’, ‘%autors%’ );
}
add_action( ‘init’, ‘true_post_type_rewrite’);
function true_rewrite_conflicts( $request ) {
if(!is_admin())
$request[‘post_type’] = array(‘autors’, ‘post’, ‘page’, ‘blog’, ‘doctors’); // перечисляем типы записей с подобной структурой пермалинков
return $request;
}
add_filter( ‘request’, ‘true_rewrite_conflicts’ );
|