Как вывести записи с непустыми meta_value

При разработке проекта https://foodies.academy возникла задача вывести рецепты, у которых есть видео.

Для унификации задачи сформулируем ее иначе: «необходимо сделать вывод постов, у которых произвольное поле (meta_key) не пустое (meta_value)».

Реализовывать эту задачу мы будем с помощью WP_Query.

В нашем случае мы делаем выборку 5 последних добавленных постов (записей) с post_type равное ‘repice‘ и у которых meta_key равно ‘recipe_video_embed‘ и значение meta_value для этого поля существует и не пустое.

Для этого мы выберем метод сравнение meta_compare NOT IN.

Если буквально говорить, то можно этот код озвучить следующим образом:

делаем выборку 5 постов типа recipe, у которых мета поле (meta_key) равно ‘recipe_video_embed‘ (в нашем случае это означает, что добавлено поле для видео) и оно не равно » (пустой строке) (в нашем случае это означает, что поле для видео содержит какие-то символы.

Собственно код представлен ниже:

<?
$args = [
	'post_type' => 'recipe',
	'posts_per_page' => 5,
	'meta_key'     => 'recipe_video_embed',
	'meta_value'   => [''],
	'meta_compare' => 'NOT IN',
	'orderby' => 'date', 
	'order' => 'DESC', 
];

$content = new WP_Query( $args );
?>

У нас все работает так, как нужно.

Хорошего и чистого кода и вам, друзья!

Добавить комментарий