Intereting Posts
Изменение даты создания WP-сайта по умолчанию Объединение запросов WordPress Post (пользовательские сообщения типа и категории) Сообщение не показывает дату, если есть другая запись с той же датой Как добавить регистрационную форму по умолчанию на страницу шаблона? Правильный способ работы с wpdb для получения первого имени пользователя get_the_tag_list () возвращает неверные ссылки Общие вопросы по пользовательским полям: front end submit + back end management + display Условно (cpt) фильтр previous и next_post_link Пользовательская публикация «Сообщение на странице» Сбой страницы? Как я могу заменить свой основной URL-адрес глобально на припаркованном? is_singular не будет вызывать мои функции? Опубликовать комментарий WP для нескольких идентификаторов сообщения Обрезать изображение после загрузки на пользовательскую страницу учетной записи Этот пост используется в галерее WordPress? Как я могу узнать, нахожусь ли я на странице входа?

Получение сообщений по таксономии

Я хочу получить набор сообщений от CPT на основе присутствующего таксономического термина. Я думал, что буду использовать функцию get_posts () WP:

$ results = get_posts (параметры массива $);

Эта функция отлично работает, когда я указываю интересующий CPT:

$ results = get_posts (array ('post_type' => 'my_cpt_name'));

Но затем я попробовал это со своим типом пользовательского сообщения UOM и попытался отфильтровать метрическую систему, которая является таксономией под названием «uom_system»:

$ results = get_posts (array ('post_type' => 'uoms', 'uom_system' => 'метрическая система');

К сожалению, раздел таксономии игнорируется, и я получаю полный список сообщений в таблице сообщений UOM. Что я делаю не так?

Solutions Collecting From Web of "Получение сообщений по таксономии"

Обычно я использую параметр tax_query :

 $args = array( 'post_type' => 'my_cpt_name', 'post_status' => 'publish', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'uom_system', 'field' => 'slug', 'terms' => 'metric-system' ) ) ); $results = get_posts( $args ); 

См. http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Я решил свою собственную проблему, осознав, что массив, который я передавал в get_posts, имел несколько пар имя-значение, которые не были предназначены для этой функции (ака, я использовал его в широком смысле для представления «опций», для которых только некоторые из этих параметров были для вызов get_posts). Похоже, что вместо игнорирования значений, которые он не понимает, он перестает обрабатывать дальнейшие пары имя-значение. Справедливо. Я удалил пары имя-значение мусора, и теперь он отлично работает.

Мне понравился вклад Саймона в «tax_query» … Я не знал об этом варианте, и я вижу, что это может быть лучше синтаксис при определенных обстоятельствах.