Intereting Posts
Как проверить, находится ли продукт в определенной категории на single-product.php в Woocommerce? Могу ли я отделить комментарии от должности? как отделить категории в loop.php? Каждое сообщение отображается дважды в моем пользовательском запросе …? Почему страница архива не может показывать полный контент? Использование ползунка изображения дважды на одной странице get_categories для настраиваемого типа сообщений и фильтрации по пользовательской таксономии (бренду) и перечислить дочерние категории определенной категории WooCommerce Admin order – Выполнять только действие, если пользователь загружен Как разрешить администраторам создавать боковую панель от администратора Multisite: активировать плагин только для подсайтов? не отображается мета-окно пользовательского типа изменение% title Изменить кнопку удаления на передней панели для публикации ожидающих сообщений URL-адрес папки с изображениями на Multisite Удаление «www» с URL-адреса сайта

Как вы можете обрабатывать правила перезаписи для настраиваемых типов сообщений с возможностью фильтрации на пользовательских таксономических условиях?

Я видел этот вопрос, но не могу обернуть мою голову, фактически фильтруя таксономию.

По сути, я ищу страницу архивов для таксономии, например mysite.com/movies (на которую отвечает предыдущий вопрос), но для фильтрации пользовательской таксономии в пользовательском типе сообщений, например Settings => New York, Berlin, поэтому что вы можете использовать такие ссылки, как mysite.com/movies/new-york.

Любые указатели относительно того, что должны были бы сделать мои правила перезаписи, были бы весьма признательны.

Solutions Collecting From Web of "Как вы можете обрабатывать правила перезаписи для настраиваемых типов сообщений с возможностью фильтрации на пользовательских таксономических условиях?"

Это то, что я использовал в прошлом для аналогичного требования;

register_post_type('movie', array( 'rewrite' => array('slug' => 'movie') )); register_taxonomy('movie_location', 'movie', array( 'rewrite' => array('slug' => 'movies') )); /** * Add rewrite rules for 'base' archives. * @param object $r Instance of {@see WP_Rewrite} */ function my_custom_rewrite_rules(&$r) { $rules = array( 'movies/page/?([0-9]{1,})/?$' => 'post_type=movie&paged=' . $r->preg_index(1), 'movies/?$' => 'post_type=movie' ); foreach ($rules as &$rule) $rule = $r->index . '?' . $rule; $r->rules = array_merge($rules, $r->rules); } add_action('generate_rewrite_rules', 'my_custom_rewrite_rules'); 

См. Аргумент rewrite в register_taxonomy() ? WordPress автоматически создает соответствующие правила перезаписи, включая разбиение на страницы!

Также обратите внимание на исключительное использование movie в аргументе register_post_type() rewrite – отчасти потому, что IMO, это семантически корректно, но тем более, что вы не открываете целую банку червей.

Что это может от червей точно?

Ну, иначе вы в итоге получите два правила перезаписи:

 'movies/([^/]+)/?$' => 'post_type=movie&movie_location=$matches[1]' 'movies/([^/]+)/?$' => 'post_type=movie&name=$matches[1]' 

Независимо от того, что индексируется сначала в массиве правил перезаписи, всегда будет запущен, а другой игнорируется .

Так что скажите, что у вас есть фильм под названием made-in-britain , но первое правило для архива таксономии на первом месте, WordPress всегда будет искать фильмы со made-in-britain термином, а не сам фильм!