Intereting Posts
Показать только определенные должности, основанные на стране посетителя? «Пакет не может быть установлен» при обновлении плагинов, тем и основных файлов на WampServer Меню Nav и счетчик сообщений Понимание строки запроса после перезаписи .htaccess Как навалом редактировать канонический url в SQL? Показывать только сообщения от текущего пользователя, который вошел в систему? Будет ли справедливым короткий код, помещенный внутри тега абзаца? Отображать сообщения, подкатегории и категории пользовательских типов сообщений и таксономии Добавление пользовательской таблицы стилей для BlackBerry Изменить имя пользователя в панели администратора Url переписать, добавить правило, перенаправить запрос POST? Контроль версий: весь сайт или просто штуки? Не удается просмотреть страницу входа после миграции WP_Query и is_page_template () условный Название страницы повторяется

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

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

По сути, я ищу страницу архивов для таксономии, например 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 термином, а не сам фильм!