Как создать страницу "Тендеры и конкурсы" с использованием пользовательских таксономий в WordPress?
Здравствуйте! Я новичок в WordPress и столкнулась с проблемой создания страницы "Тендеры и конкурсы" с использованием пользовательских таксономий. У меня есть пользовательская таксономия "Типы тендеров" с такими терминами: "Открытый тендер", "Закрытый тендер". Мне нужно, чтобы эти термины отображались на странице "Тендеры и конкурсы" с соответствующими записями. Вот пример кода, где я столкнулась с проблемой:
$args = array(
'post_type' => 'tenders',
'tax_query' => array(
array(
'taxonomy' => 'tender_types',
'field' => 'slug',
'terms' => 'open-tender',
),
),
);
$query = new WP_Query( $args );
while ( $query->have_posts() ) : $query->the_post();
// Вывод записей
endwhile;
wp_reset_postdata();
Как мне изменить этот код, чтобы он правильно отображал записи с соответствующими пользовательскими таксономиями на странице "Тендеры и конкурсы"? Буду благодарна за помощь!
Ответы:
Вам нужно использовать параметр 'terms' внутри 'tax_query' для указания терминов таксономии.
Для того чтобы код правильно отображал записи с соответствующими пользовательскими таксономиями на странице "Тендеры и конкурсы", вам необходимо изменить параметры запроса WP_Query.
В вашем коде вы используете таксономию 'tender_types' и ищете записи, у которых значение слага (slug) равно 'open-tender'. Однако, в вашем вопросе вы упоминаете, что у вас есть такие термины, как "Открытый тендер" и "Закрытый тендер". Поэтому, вам необходимо изменить значение термина на название самого термина, а не на его слаг.
Измените ваш код следующим образом:
$args = array(
'post_type' => 'tenders',
'tax_query' => array(
array(
'taxonomy' => 'tender_types',
'field' => 'name',
'terms' => 'Открытый тендер',
),
),
);
$query = new WP_Query( $args );
while ( $query->have_posts() ) : $query->the_post();
// Вывод записей
endwhile;
wp_reset_postdata();
Теперь код будет корректно отображать записи с таксономией "Типы тендеров" и термином "Открытый тендер". Если вам нужно отобразить записи с другим термином, просто измените значение в параметре 'terms' на нужное вам название термина.
Надеюсь, это поможет вам решить проблему! Если у вас остались вопросы, не стесняйтесь обращаться. Удачи!