Intereting Posts
WP Отзывчивые изображения – загрузка пользовательских изображений Фильтр или какой-либо способ динамически изменять образ экрана экрана? Получение метаданных дополнительных сообщений? Как просмотреть свой веб-сайт без верхней панели администратора WordPress, но оставаться в нем? Каковы общие недостатки безопасности, которые мне нужно искать? Можно ли передавать переменные из add_user_page? Групповые сообщения по первому письму Проблемы с загрузкой пользовательских загрузок Сохранять значения, сгенерированные через API, как термины таксономии Мой wp-admin перестает работать внезапно Поиск по значениям метаданных, показывающим несоответствующий результат Удалять изображения (файлы), которые были сгенерированы при использовании add_image_size () Где менеджер по продажам плагина WP-Commerce? Проблема с установкой DNS или WordPress> Как показать все фильтры с виджетами сетевого фильтра woocommerce

WP_Query получает сообщения, где post_name пуст

Я хочу получить все сообщения, для которых post_name (slug) не задано / пусто, а также meta_key не существует.

$args = array ( 'post_type' => 'books', 'name' => '', 'post_status' => array('publish, draft'), 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => 'book_isbn_id', 'value' => 'dummy', 'compare' => 'NOT EXISTS', 'type' => 'NUMERIC', ), ), ); $query = new WP_Query( $args ); echo $query->request; 

Кажется, что 'name' = '' или 'name' = ' ' полностью игнорируется из того, что я вижу из echo $query->request .

Я что-то делаю неправильно?

Вы можете попробовать следующее:

 $args = array ( 'post_type' => 'books', 'name' => '', 'post_status' => array('publish, draft'), 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => 'book_isbn_id', 'value' => 'dummy', 'compare' => 'NOT EXISTS', 'type' => 'NUMERIC', ), ), ); add_filter( 'posts_where', 'custom_posts_where' ); $query = new WP_Query( $args ); echo $query->request; 

где

 function custom_posts_where( $where ) { remove_filter( current_filter(), __FUNCTION__ ); if( FALSE === strpos( $where, 'post_name' ) ) { $where .= sprintf( " AND %s.post_name = '' ", $GLOBALS['wpdb']->posts ); } return $where; } 

для поиска пустых почтовых имен.

Имя сообщений никогда не будет пустым, поскольку оно автоматически устанавливается при установке заголовка. или если заголовок оставлен пустым, тогда ваше post_name будет вашим идентификатором сообщения. Поэтому ваш запрос никогда не вернет никаких результатов, если вы не взломали ядро ​​wordpress …