При создании своей кастомной таксономии у рубрик (тегов) указывается 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 |
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' ); |
Код нерабочий, половина ссылок на сайте уходят в 404
Какая половина?
Не работает, если добавлять дочерние категории 3-4 уровня