Правило перезаписи для пользовательской таксономии

Я довольно новичок в WordPress, и я пытаюсь создать блог рецептов.

Я создал обычную таксономию для ингредиентов:

register_taxonomy( 'ingredient', 'post', array( 'label' => 'Ingredient', 'hierarchical' => true ), array( 'rewrite' => array ( 'slug'=>'recipes-with' ) ); 

Все работает, и мои URL-адреса похожи на

www.mysite.com/recipes-with/onion

но я бы хотел, чтобы мои URL-адреса

www.mysite.com/recipes-with-onion

Я попытался изучить add_rewrite_rule() , но я не могу заставить его работать.

Любая помощь будет принята с благодарностью!

EDIT: Вот как я решил проблему с помощью toni_lehtimaki.

1) Я удалил массив rewrite в аргументе args register_taxonomy, чтобы он стал:

 register_taxonomy( 'ingredient', 'post', array('label'=>'Ingredient', 'hierarchical'=>true)); 

2) Затем я добавил некоторые правила перезаписи

 add_rewrite_rule('^recipes-with-(.*)/page/([0-9]+)?$','index.php?ingredient=$matches[1]&paged=$matches[2]','top'); add_rewrite_rule('^recipes-with-(.*)/?','index.php?ingredient=$matches[1]','top'); 

3) Последнее, что мне нужно было сделать, это добавить фильтр

 add_filter( 'term_link', 'change_ingredients_permalinks', 10, 2 ); function change_ingredients_permalinks( $permalink, $term ) { if ($term->taxonomy == 'ingredient') $permalink = str_replace('ingredient/', 'recipes-with-', $permalink); return $permalink; } 

4) Правила перезаписывания флеша (вам нужно только перейти к настройкам-> по умолчанию и нажать «Сохранить»)

Я придумал это с помощью add_rewrite_rule() :

 add_rewrite_rule('^recipes-with-([^/]*)/?','index.php?ingredient=$matches[1]','top'); 

Я сделал некоторые тесты для вышеупомянутого, и он хорошо работает, когда вы используете его для одной таксономии. Вот код из моих functions.php:

 add_action( 'init', 'create_ingredient_tax' ); function create_ingredient_tax() { register_taxonomy( 'ingredient', 'post', array( 'label' => 'Ingredient', 'hierarchical' => true ), array( 'rewrite' => array ( 'slug'=>'recipes-with' )) ); } // Remember to flush_rewrite_rules(); or visit WordPress permalink structure settings page add_rewrite_rule('^recipes-with-([^/]*)/?','index.php?ingredient=$matches[1]','top'); 

Затем я использовал taxonomy-post_format.php шаблон из WordPress двадцать taxonomy-post_format.php темы, чтобы проверить, что это работает. Я также сбросил правила перезаписи, чтобы новое правило стало эффективным.