2013-05-06 3 views
1

내 게시물에 내용이 있는지 확인하려고합니다. 현재, 나는 루프에서 조건을 추가하십시오WP-Query : 게시물 내용이 비어 있는지 확인하십시오.

wp query ('posts_per_page' => 8). 
내가이 일을 생각

에서

if ($post->post_content) 

과 퍼팅을 주장하지만, 실제로 WP query8 lasts의 내용을 마지막 8 posts을 찾아 가서 확인 . 따라서 2 또는 3 글을 렌더링합니다.

내가 원하는 것은 내용이있는 마지막 8 게시물을 표시하는 방법입니다.

무슨 뜻인지 아시겠습니까?

는 정말 도움 :)

안부를 주셔서 감사합니다.

+0

쿼리는 8 개의 게시물을 반환하지만 2 개 또는 3 개의 페이지 만 렌더링됩니까? 일치하는 경우 쿼리에 빈 체크를 추가하십시오. –

답변

5

표준 WP 쿼리에서는이 작업을 수행 할 수 없으므로 WP_Query가 호출되기 전에 posts_where을 사용해야합니다. 열 post_content가 비어 있지 않은 경우 위의에서

function fitler_where($where = ''){ 
    $where .= "AND trim(coalesce(post_content, '')) <>''"; 
} 

, 우리는 단순히 글만 선택하고 있습니다.

그런 다음 필터를 추가하십시오.

add_filter('posts_where', 'filter_where'); 

이제 쿼리를 수행하십시오.

$query = new WP_Query(array('post_type' => 'post', 'posts_per_page' => 8)); 

그리고 끝나면 방해받지 않도록 쿼리에서 필터를 제거하십시오.

remove_filter('posts_where', 'filter_where'); 
+0

좋아, 알 겠어. 고마워요! – enguerranws

관련 문제