При разработке проекта 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 );
?>
У нас все работает так, как нужно.
Хорошего и чистого кода и вам, друзья!
Добавить комментарий