Intereting Posts
Класс WP_Rewrite не найден Microsoft Security Essentials блокирует мой сайт WordPress в IE11 Каковы наилучшие методы настройки сервера для сайтов WordPress? Название моей вкладки, адрес ссылки и контент не совпадают! Как сделать привязку доменов к подкаталогам? Показать сообщение категории с текстом выдержки Загрузка файлов в профили приятелей Отобразить список сообщений в списке категорий, отсортированных по названию Как получить все возможные аргументы для функции wordpress Получать сообщения от определенного таксономического термина Скрытые страницы, сообщения и плагины Как защитить блог WordPress с помощью OpenID от одного поставщика? Сохранение / извлечение наилучших методов данных формы для разработки тем Разрешить статическую страницу показывать на странице динамического домашнего блога до сообщений Не могли бы вы исправить код is_admin ()

Как фильтровать сообщения по формату и категории через URL?

Я понял, что могу фильтровать сообщения по формату, просто делая / type / {format} например / type / gallery / в url.

Ищете способ фильтрации по категориям поверх этого, что-то вроде / type / gallery / category / installation или / type / gallery / art.

Я вычислил запрос, но я не знаю, как обрабатывать бит URL:

$galleryquery = wp_parse_args($query_string); $galleryquery['tax_query'] = array( array( 'taxonomy' => 'post_format', 'terms' => array('post-format-gallery'), 'field' => 'slug', ), array( 'taxonomy' => 'category', 'terms' => array('installation'), 'field' => 'slug', ), ); query_posts($galleryquery); 

Идеи? Я предполагаю, что мне нужно перехватить постоянную ссылку и как-то передать ее моему запросу …

Здесь можно найти сайт

Я делаю что-то подобное, но для страниц членов. Мне удалось использовать код в моем ответе, связанный здесь, который анализирует информацию в URL-адресе, который можно манипулировать в WordPress.

https://wordpress.stackexchange.com/a/91399/12920

Вот фрагмент части обработки URL-адреса, которая, возможно, поможет вам начать работу? Конечно, вы делаете что-то другое, чем я, но основная функция должна быть очень похожей.

 // Catch the URL and redirect it to a template file function userpage_rewrite_catch() { global $wp_query; if ( array_key_exists( 'member', $wp_query->query_vars ) ) { // Do something if member is in the URL include (TEMPLATEPATH . '/user-profile.php'); exit; } } add_action( 'template_redirect', 'userpage_rewrite_catch' ); 

Возможным подходом является создание нового правила перезаписи для обработки настраиваемого URL-адреса. Я не тестировал код, но он выглядит примерно так:

 function add_category_query_var($query_vars) { array_push($query_vars, 'post_type'); array_push($query_vars, 'post_category'); return $query_vars; } add_filter('query_vars','add_category_query_var'); /* create new rewrite rule*/ function add_category_rewrite_rule($wp_rewrite_rules) { $new_rewrite_rule['type/([^/]+)/category/([^/]+)/?$'] = 'index.php?post_type=$matches[1]&post_category=$matches[2]'; $wp_rewrite_rules = $new_rewrite_rule + $wp_rewrite_rules; return $wp_rewrite_rules; } add_filter('rewrite_rules_array', 'add_category_rewrite_rule'); 

Затем вы получите доступ к новой переменной следующим образом:

 $galleryquery['tax_query'] = array( array( 'taxonomy' => 'post_format', 'terms' => array('post-format-gallery'), 'field' => 'slug', ), array( 'taxonomy' => 'category', 'terms' => array($_GET['post_category']), 'field' => 'slug', ), ); 

Я закончил с этим:

 function when_rewrite_rules( $wp_rewrite ) { $newrules = array(); $new_rules['type/([^/]+)/category/([^/]+)/?$'] = 'index.php?post_format=$matches[1]&category_name=$matches[2]'; $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; } add_filter('generate_rewrite_rules','when_rewrite_rules'); 

Нет необходимости добавлять новые запросы. Вы можете получить оба таксономии из коробки: категории могут быть запрошены с помощью «? Category_name = x» и отправлять форматы с помощью «? Post_format = x».

Смутно, почтовые форматы являются таксономией, а не обычным типом сообщения, но имеют таксономию «типа». Например, вы фильтруете их так:

mysite.com/type/gallery

Кажется, что «/ format /» будет лучшей таксономией, чтобы избежать путаницы с Custom Post Type.