추천 이미지가있는 게시물 만 쿼리


15

6 개의 게시물을 쿼리하고 싶지만 추천 이미지가 첨부 된 게시물 만 쿼리하고 싶습니다. 나는 meta_key이것을 위해 다음과 WP_Query같은 방법을 사용 하고 있다 :

$args = array(
    'post_type'  => 'post',
    'meta_key' => '_thumbnail_id',
    'post_count' => 6 );
$query = new WP_Query($args);

뒤에

<?php while($query->have_posts()) : $query->the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <?php the_post_thumbnail('thumbnail'); ?>
<?php endwhile; ?>

작동하지 않는 것 같습니다. 검색어에 6 개 이상의 게시물과 추천 이미지가없는 게시물이 반환되었습니다. 내가 잘못한 아이디어가 있습니까?

@chip : var_dump($query);큰 결과를 제공하므로 pastebin에 게시했습니다.


2
코드 스 니펫이 예상대로 작동했습니다. 코드의 다른 부분에 오류가있을 수 있습니다.
Ralf912

무엇을 얻 var_dump( $query )습니까?
Chip Bennett

내가 생각한 추가 사항-게시물은 wordpress export / importer를 사용하여 라이브 사이트에서 로컬 서버로 가져 왔습니다. 원래 게시물에는 모두 가져 오기 과정에서 손실 된 이미지가 있습니다. 추천 이미지가 제거되었지만 메타 키가 여전히 남아있어 쿼리가 엉망이 되었습니까?
harryg

가져 오기를 실행할 때 모든 첨부 파일 / 미디어를 다운로드하고 첨부하는 확인란을 선택 했습니까? 그렇지 않으면 추천 이미지가 작동하지 않습니다. 게시물에는 추천 이미지가 있지만 존재하지 않는 첨부 파일을 참조하므로 표시되지 않습니다.
Tom J Nowell

예, 가져올 때 확인란을 선택했습니다.
harryg

답변:


3

임포터를 실행할 때 모든 미디어 / 첨부 파일을 다운로드하고 가져 오려면 확인란을 선택해야합니다.

그렇지 않으면 게시물에 추천 이미지 세트가 있지만 해당 첨부 파일은 유효하지 않으며 호출 시도 the_post_thumbnail가 실패합니다. 코드를 사용하면 게시물 제목 만 있고 미리보기 이미지는 없습니다. 이렇게하면 추천 이미지가없는 게시물을 가져오고 있다는 인상을 줄 수 있습니다. 이것은 추천 이미지가 아니며 가져 오는 중에 실수로 인해 사용할 수없는 것입니다.

게시물을 삭제하고 올바른 설정을 사용하여 다시 가져 오십시오.

또한 요점을 설명하기 위해 실제로 게시물을 확인하려고 시도하지 않았으며 항상 다음과 같이 확인하십시오.

if ( $query->have_posts() ) { // you never checked to see if no posts were found
    while($query->have_posts()) { // alt style syntax doesn't work with most IDEs
        $query->the_post(); // individual statement should be on individual line
        ?><h2><?php the_title(); ?></h2><?php // you only need open/close tags here, not every line, save yourself some time typing
        if ( has_post_thumbnail() ) { // only print out the thumbnail if it actually has one
            echo '<p>post says it has a featured image</p>'; // double checking
            the_post_thumbnail('thumbnail');
        } else {
            echo '<p>this post does not have a featured image</p>';
        }
    }
} else {
    echo '<p>no posts found</p>';
}

확인란을 선택하지 않으면 추천 이미지가 있지만 이미지가 표시되지 않는 이미지가 표시됩니다.


1
이것이 내가 제공 한 답변이 예상대로 작동하지 않는 이유라고 생각합니다. 워드 프레스의 자살 플러그인은 모든 컨텐츠를 삭제 꽤 도움이된다.
helgatheviking 2013 년

나는 그 박스를 체크했다. 그러나 내 경험상 그것은 결코 효과가 없었습니다. 모든 이미지가 외부 사이트로 다시 연결되었습니다. 외부 이미지 가져 오기 ( wordpress.org/extend/plugins/import-external-images ) 플러그인을 사용하여 이미지를 로컬에 저장하고 첨부했습니다.
harryg

나는 같은 생각을했고 상자를 확실히 체크했는데 왜 여전히 작동하지 않습니까? 나는 고객으로부터 그것을 얻었고, 잘못하기가 너무 쉽기 때문에 게시물을 삭제하고 다시 가져오고 확인했는지 확인하십시오. 그래도 작동하지 않으면 제외시킬 수 있습니다. 그렇지 않으면 Neil DeGrasse Tyson이 인간의 기억이 얼마나 병약한지에 대해 이야기합니다. (하지만 하나가없는) 지금은 두 번째 tickbox 선택을 취소를 요청할 수 있고 당신은 아마 너무 본 기억 것
톰 J 노웰

그리고 그 사이에, 랩 the_post_thumbnailA를 has_thumbnail호출하고 당신은 확실히 명백하게 포스트는 기능을 갖춘 이미지가없는 것을 알고 그래서 다른 케이스를 추가
톰 J 노웰

또한 서버가 원격 서버에 도달 할 수 있는지 확인하십시오. 서버가 원격 요청을 가져올 수 없으면 가져올 수 없습니다. 이미 잡은 미디어 첨부 파일을 삭제해야 할 수도 있습니다.
Tom J Nowell

24

WordPress 3.5부터 메타 쿼리 매개 변수는 지원 EXISTSNOT EXISTS비교 연산자를 지원 합니다. 이를 사용하는 경우 value메타 쿼리 의 일부를 생략 할 수 있습니다. 쿼리에 대해 다음 인수를 시도하십시오.

$args = array(
   'post_type'  => 'post',
   'posts_per_page' => 6,
    'meta_query' => array(
        array(
         'key' => '_thumbnail_id',
         'compare' => 'EXISTS'
        ),
    )
);

제안 해 주셔서 감사합니다. 이제 6 개의 게시물이 있지만 썸네일이없는 게시물이 나타납니다.
harryg

나는 이것을 테스트했고 그것은 나를 위해 일했다. 그러나 메타 세트가있는 엔티티를 반환하지만 첨부 파일 ID가 올바르지 않은 항목을 반환한다는 것을 알았습니다. 게시물에 추천 이미지가 설정되어 있는지 다시 확인하십시오. 그렇지 않으면 문제가 무엇인지 알 수 없습니다.
helgatheviking

harryg, v3.5 이상을 사용하고 있는지 확인할 수 있습니까?
Tom J Nowell

예, 로컬 dev 서버에 네트워크 (멀티 사이트) 설정으로 새로 설치된 최신 버전의 WordPress를 실행하고 있습니다.
harryg

2
몇 가지 추가 정보 : 해결되지 않은 버그가 있습니다. trac ticket 23268을 참조하십시오 NOT EXISTS.이 경우 사용되는 경우 값을 사용해야합니다 .
Nicolai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.