variantaUliana27 19.01.2023 23:30

Как создать страницу "Тендеры и конкурсы" с использованием пользовательских таксономий в 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();

Как мне изменить этот код, чтобы он правильно отображал записи с соответствующими пользовательскими таксономиями на странице "Тендеры и конкурсы"? Буду благодарна за помощь!

Ответы:

Nastya25DE 19.01.2023 23:47
Вам нужно использовать параметр 'terms' внутри 'tax_query' для указания терминов таксономии.
LilyGuseva79 19.01.2023 23:54
Для того чтобы код правильно отображал записи с соответствующими пользовательскими таксономиями на странице "Тендеры и конкурсы", вам необходимо изменить параметры запроса 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' на нужное вам название термина. Надеюсь, это поможет вам решить проблему! Если у вас остались вопросы, не стесняйтесь обращаться. Удачи!

Добавить ответ