Выберите персонализированный пост по мета-значению

Скажем, у меня есть настраиваемый тип сообщения foo с мета-полем, называемым bar . Я разместил запись с bar = pineapple . Теперь я хочу проверить, есть ли в базе данных foo с bar установленным на pineapple . Как мне это сделать?

Мне удалось получить эту работу с помощью wpdb запроса, но это не кажется правильным. Есть ли элегантный, возможно встроенный способ для меня сделать это?

Я думаю, вы имеете в виду такой запрос, как этот:

 $args = array( 'post_type' => 'foo', 'meta_key' => 'bar', 'meta_value' => 'pineapple', 'posts_per_page' => 1, ); $query = new WP_Query( $args ); 

Вы можете узнать дополнительную информацию здесь о мета-запросах в WP_Query .

Если вы хотите проверить, существует ли такая запись, вы можете использовать свойство found_posts :

 if( $query->found_posts > 0 ){ // do stuff } 

или обычным способом с помощью have_posts() :

 if( $query->have_posts() ){ // do stuff }