부서진? 게시물 유형으로 WP_Query 및“첨부 파일”


18

페이지에 갤러리가 첨부되어 있습니다. 해당 페이지에서 다음 쿼리를 실행 중입니다.

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'status' => 'inherit', // Inherit the status of the parent post 
    'orderby' => 'rand', // Order the attachments randomly  
    )
);

나는 몇 가지 방법을 실험했으며 어떤 이유로 든 첨부 파일을 반환 할 수 없습니다. 여기에 명백한 것이 빠져 있습니까?

최신 정보*

올바른 방향으로 나를 가리켜 준 Wok에게 감사합니다.

"post_status"대신 "status"를 사용하고있었습니다. 코덱은 "첨부 파일"게시물 유형에 대한 컨텍스트 설명에서 "상태"를 예로 사용했습니다. 대신 "post_status"를 참조하도록 코덱을 업데이트했습니다. 올바른 코드는 다음과 같습니다.

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
    'orderby' => 'rand', // Order the attachments randomly  
    )
);  

post_status가 'null'과 'inherit'로 설정되는 것의 차이점이 무엇인지 궁금합니다.
Wok

고마워서 많은 고통을 구했습니다 'post_status' => 'inherit' !
Pat

답변:


14

이들은 내가 사용하는 쿼리 매개 변수입니다 ... 결과를 반복 할 때 작동합니다.

array(
                'post_parent' => $post->ID,
                'post_status' => 'inherit',
                'post_type'=> 'attachment',
                'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'                  
            );

13

에 추가 $args하는 것이 중요합니다.

'post_status' => 'any'

하지 마라: 'post_status' => null

첨부 파일은이 없기 때문에 중요하다 post_status, 기본 값 때문에 post_status, published어떤 첨부 파일을 찾을 수 없습니다.


한두 줄의 코드를 게시하는 대신 답변을 설명하기 위해 노력하십시오.
s_ha_dum

예, 어떻게 작동합니까? 추가 할 때까지 첨부 파일을 아카이브 페이지에 표시 할 수 없습니다.
Claire

0

생성 된 쿼리를 보면 일종의 버그 인 것 같습니다. 'status'=> 'inherit'는 첨부 파일에 대한 db의 항목이 문자 그대로 'inherit'인 경우 상위 상태로 해석됩니다.

대안은 WP_Query 대신 get_children을 사용하는 것입니다.


0

이 코드를 사용하여 게시물에 첨부 된 모든 이미지를 표시 할 수있었습니다.

<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
    if ($attachments) {
    foreach ( $attachments as $attachment ) { ?>
      <img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php   }
    } ?>

원본 전체 크기 이미지의 URL을 에코하려면 해당 이미지를

<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>

바라건대 이것은 당신이하려는 일에 대한 접근법입니다.


페이지 매김이 그와 함께 작동합니까? 나머지 출력 코드를 보여줄 수 있습니까? 페이지에있는 첨부 파일을 실제로 페이지 매기기 위해 테마 갤러리를 다시 코딩하는 중입니다. 감사!

게시물에 4 개의 이미지를 업로드하고 single.php의 기본 컨텐츠 항목 div에 추가하면 4 개의 이미지 태그가 뱉어집니다. 각각의 src =는 원래 큰 이미지 크기로 이어집니다. 페이지 매김은 게시물에 첨부 된 모든 이미지를 뱉어 내기 때문에 작동하지 않습니다.
차드 폰 린드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.