Поэтому у меня есть обычная таксономия, называемая «форма», а другая – «цвет». Если я хочу получить термины списка под формой, которые содержат сообщения, которые также присутствуют в терминах под цветом , как это сделать?
Например, у меня есть пост под пользовательской игрушкой типа Post Ball, которая присутствует как в круге, так и в цвете Red. Я хочу получить термин «круг» через запрос $wpdb
. Я хотел бы подчеркнуть, что хочу получить список терминов, а не сообщений.
Это должно дать вам имена всех таких терминов в массиве
$wpdb->get_col("SELECT DISTINCT {$wpdb->terms}.name FROM {$wpdb->terms} INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_id = {$wpdb->terms}.term_id INNER JOIN {$wpdb->term_relationships} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id WHERE {$wpdb->term_taxonomy}.taxonomy = 'shape' AND {$wpdb->term_relationships}.object_id IN ( SELECT object_id FROM {$wpdb->term_relationships} INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id = {$wpdb->term_relationships}.term_taxonomy_id WHERE {$wpdb->term_taxonomy}.taxonomy = 'color' );");
Если вам нужны другие данные, кроме имени, вам нужно будет изменить поля, чтобы выбрать & также изменить функцию из get_col
в get_results
Убедитесь, что в названиях таксономии нет орфографических ошибок «форма» и «цвет», которые используются внутри запроса
Рекомендации-