Как использовать meta_query для проверки наличия мета-поля?

(WordPress 4.3.1)

Я запускаю настраиваемый цикл и хочу включать сообщения, которые загружают файл в настраиваемое поле: audio_file.

Я пробовал много решений в Интернете, и пока ничего не работает.

Могу ли я использовать meta_query, чтобы проверить, имеет ли значение ключ?

Вот моя текущая попытка:

global $post; $args = array( 'post_type' => array ( 'podcast', 'event', ), 'posts_per_page' => 10, 'post_status' => 'publish', 'paged' => get_query_var( 'paged' ), 'meta_query' => array ( 'key' => 'audio_file', 'value' => '' , 'compare' => '!=', //'type' => 'date', ), ); global $wp_query; $wp_query = new WP_Query( $args ); if ( have_posts() ) { while ( have_posts() ) { the_post(); 

Предложенный результат здесь – показывать сообщения, в которых «audio_file» не пуст.

Благодарю. (WordPress 4.3.1)

Я понял, meta_query должен быть массивом в массиве, поскольку он предназначен для расширенных запросов с использованием отношения.

 meta_query => array ( array ( //'relation' => 'OR', 'key' => 'audio_file', //The field to check. 'value' => '', //The value of the field. 'compare' => '!=', //Conditional statement used on the value. ), ), 

Условное выражение '! =' Не равно '' (null) возвращает true, если файл был загружен.

Могу ли я использовать meta_query, чтобы проверить, имеет ли значение ключ?

Любое значение? Использовать EXISTS

 'meta_query' => array ( 'key' => 'audio_file', 'value' => '' , 'compare' => 'EXISTS', 'type' => 'date', ), ); 

Я не знаю, почему ваш загруженный файл будет типом date . Я ожидаю, что он будет binary или, возможно, char