Только получать сообщения, в которых заполнено post_excerpt

Я пытаюсь использовать get_posts, чтобы возвращать сообщения с выдержкой. Сделано много поиска и пытались использовать фильтр «posts_where» в запросе, но мой SQL не хватает. Это то, что я использую, что в теории я думаю, должно работать, но на самом деле я понятия не имею о sql и не могу понять, как печатать строку sql для этого запроса для отладки …

$args = array( 'post_type' => 'testimonial', 'numberposts' => 1, 'orderby' => 'rand', ); add_filter( 'posts_where' , 'posts_where_excerpt_not_empty' ); $post = get_posts($args); remove_filter( 'posts_where' , 'posts_where_excerpt_not_empty' ); [...] function posts_where_excerpt_not_empty( $where ) { $where .= " post_excerpt NOT NULL"; return $where; } 

Solutions Collecting From Web of "Только получать сообщения, в которых заполнено post_excerpt"

post_excerpt является строкой и не фильтруется, используя «IS NOT NULL». Чтобы запросить пустую строку, вы можете использовать оператор != .

 function posts_where_excerpt_not_empty( $where ) { $where .= " AND post_excerpt != '' "; return $where; } 

Также get_posts по умолчанию отключает фильтры, поэтому вам нужно будет вызвать его с фильтрами подавления, установленными в false или с использованием другого метода запросов.

 $posts = get_posts( array( 'suppress_filters' => FALSE ) ); 

Возможно, вы ошибаетесь, но не можете ли вы проверить, есть ли пустое условие?

 <?php query_posts(array( 'post_type' => 'testimonial', 'showposts' => 1, 'orderby' => 'rand' ) ); $checExcerpt = get_the_excerpt(); if !($checExcerpt = '') { // Put the echo commands here } else { echo 'Sorry You forgot to enter Descriptions.. search engine love does!'; } ?> 

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