Получаем список записей принадлежащих термину таксономии
Предположим, что мы хотим получить все записи, которые относятся к определенному термину таксономии или рубрике (категории).
Для таксономии
Скопировано
$posts = get_posts([
'posts_per_page' => -1,
'auto' => 'volvo'
]);
Показать код
Здесь мы получим все записи, принадлежащие термину со слагом volvo
таксономии auto
.
То же самое, чуть подробнее:
Скопировано
$posts = get_posts([
'posts_per_page' => -1,
'tax_query' => [
[
'taxonomy' => 'auto',
'field' => 'slug',
'terms' => 'volvo'
]
]
]);
Показать код
Для рубрики
Скопировано
$posts = get_posts([
'posts_per_page' => -1,
'cat' => 555
]);
Показать код
Здесь надо указать верный ID рубрики.
И тоже самое, только через SQL-запрос:
Скопировано
global $wpdb;
$cat_id = 555;
$posts_ids = $wpdb->get_col( "SELECT
ID FROM $wpdb->posts p
JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id)
JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
JOIN $wpdb->terms t ON (tt.term_id = t.term_id)
WHERE p.post_type='post'
AND p.post_status = 'publish'
AND tt.taxonomy = 'category'
AND t.term_id = $cat_id
ORDER BY post_date DESC" );
Показать код
Здесь мы уже получим не сами записи, а только их ID. Во второй строке так же надо указать верный ID рубрики.