Intereting Posts
Странное поведение с циклом перенаправления – включает многоязычный плагин WPML Включая контент из устаревшего приложения: через плагин или пользовательский контент? Вишневый фреймворк добавляет пользовательский тип сообщения Добавление подменю в меню «Сервис» возвращает tools.php во всплывающем окне Как добавить ссылку на страницу категорий в меню? Как pre_get_posts фильтрует роли в WP Admin Добавьте пиксель преобразования / отслеживания в раздел <head> для определенной записи Переписать правила для настраиваемого пула сообщений Операторы define () нуждаются в докблоках в стиле phpDocumentor? Уточнить запрос таксономии пользователя на основе роли Переопределить библиотеку jquery ui по умолчанию с более новой версией wp_logout не перенаправляется с помощью wp_logout_url () и wp_redirect () Как изменить уведомление по электронной почте для комментариев ACF Gallery & mqTranslate, название и описание не отображаются на других языках Создать новую тему

Отфильтровать сообщения на новой странице

Я хочу создать фильтры для сообщений на странице таксономии. Я хочу создать новые страницы для этих фильтров и просто разместить ссылки на них на странице таксономии, но мне нужно сохранить структуру URL. Например, в настоящее время у меня есть: http://example.com/custom_taxonomy/term/child_term

и я хочу заказать заказы по цене, например, и я хотел бы иметь следующий URL-адрес для этого: http://example.com/custom_taxonomy/term/child_term/low-price http://example.com/custom_taxonomy/term / child_term / высокая цена

Является ли это возможным?

Вы можете сделать это с помощью комбинации переписывающих конечных точек и действия pre_get_posts .

Во-первых, ваша таксономия должна быть зарегистрирована с некоторыми конкретными аргументами rewrite чтобы включить это, в частности ep_mask :

 register_taxonomy( 'customtax', 'posttype', array( 'rewrite' => array( 'slug' => 'custom-tax', 'hierarchical' => true, 'ep_mask' => EP_ALL ), // other args... ) ); 

Затем вы можете добавить конечную точку для своего фильтра, а также в действие init :

 add_rewrite_endpoint( 'low-price', EP_ALL ); 

Обратите внимание, что правила перезаписи должны быть очищены в этот момент, чтобы существовала новая конечная точка.

Последний шаг заключается в том, чтобы затем подключить pre_get_posts и определить конечную точку с low-price и применить соответствующие мета-аргументы к запросу:

 function wpd_filter_my_tax( $query ) { if ( $query->is_tax( 'customtax' ) && $query->is_main_query() && isset( $query->query_vars['low-price'] ) ) { $query->set( 'meta_key', 'price' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'wpd_filter_my_tax' );