2016-06-14 3 views
-1

WordPress에서 이미지 게시 형식을 추가하려고합니다. 사용자가 추천 이미지를 업로드하지 않고 본문에 이미지를 추가하는 경우 첨부 파일에서 첫 번째 이미지를 가져 와서 상단 머리글 이미지로 표시하고 나머지는 기사 본문에 표시하려고합니다. 여기에 내가 생각해 낸 기능이 있습니다. 추천 이미지가 업로드되면 작동하지만 그렇지 않은 경우 게시 본문에없는 이미지를 가져옵니다. 게시물의 ID를 얻지 못하는 것 같습니다. 나는 무엇을 잘못 했는가? 도와주세요. 전자는WordPress 이미지 게시 및 갤러리 게시 문제

function justblog_get_attachment(){ 
    if(has_post_thumbnail()) { 
     the_post_thumbnail('large', array('class' => 'blog-main-image')); 
    } else { 
     // No post thumbnail, try attachments instead. 
     global $post; 
     $attachments = get_children(array('post_parent' => $post->ID, 
              'post_type' => 'attachment', 
              'post_mime_type' => 'image', 
              'order' => 'DESC', 
              'orderby' => 'menu_order ID')); 

     foreach($attachments as $att_id => $attachment) { 
      $full_img_url = wp_get_attachment_image_src($attachment->ID, 'full', true); 
     } 
     if ($attachments) { 
      echo '<img src="' . esc_url($full_img_url[0]) . '" alt="Title Image" class="blog-main-image" />'; 
     } 
    } 
    wp_reset_postdata(); 
} 

이 사용 CSS를 시도 할 수 아래에 설명된다

전역을 사용하여 $ 게시물을 채우거나 인수로 함수에 게시 $ 통과해야
function justblog_get_attachment(){ 
if(has_post_thumbnail()) { 
    the_post_thumbnail('large', array('class' => 'blog-main-image')); 
} else { 
    // No post thumbnail, try attachments instead. 
    $attachments = get_children(array('post_parent' => $post->ID, 
             'post_type' => 'attachment', 
             'post_mime_type' => 'image', 
             'order' => 'DESC', 
             'orderby' => 'menu_order ID')); 

    foreach($attachments as $att_id => $attachment) { 
     $full_img_url = wp_get_attachment_image_src($attachment->ID, 'full', true); 
    } 
    if ($attachments) { 
     echo '<img src="' . esc_url($full_img_url[0]) . '" alt="Title Image" class="blog-main-image" />'; 
    } 
} 
wp_reset_postdata(); 
} 

답변

0

: 여기 내 코드입니다 작은 PHP. 기본적으로 헤더 코드를 수정하여 본문에 추가 클래스를 추가하거나 페이지 주위에 div 래퍼를 추가합니다.

if (has_post_thumbnail($post->ID)){?> 

    <div class="post-body no-feat-img"> 

<?php } else { ?> 
    <div class="post-body"> 
<?php } 

은 그런 절대 IMG을 상단에 정렬, 당신은 게시물 내용의 첫번째 이미지를 타겟팅 할 수 있습니다이 클래스를 사용하여.

여기에 샘플을 참조하십시오. https://jsfiddle.net/1pveo2wn/1/ - 이미지 아래에 수업을 토글하는 버튼이 있습니다. 이것은 이상적이지는 않지만 그 하나의 방법입니다. 다른 하나는 출력하기 전에 게시 내용을 필터링하고 이미지를 가져 와서 추천 이미지로 표시하는 것입니다.

필자가 필터 방법에 대한 코드를 작성하지 않을 이유는 지난 2 일 동안 srcset 및 wordpress를 사용하는 것입니다. the_post_thumbnail() 각 일반 화면 유형 (모바일 와이드 스크린). 따라서 나는 당신이 이것을 버려야한다고 생각하고 단지 특색있는 이미지를 사용하고, 사용자가 특색있는 이미지를 선택하는데 실패했다면, 그들의 힘들 것.

+0

안녕 데이비드, 나는 당신의 수정을 시도하고 빈 배열을 반환합니다. 나는 WP 루프 내부에서 함수를 호출하므로 게시물의 ID를 잡고 거기에서 첨부 파일을로드해야합니다. 게시물 ID가 괜찮아 보여요! WP 루프 내부에서 템플릿 파트를 호출합니다. 어떤 아이디어라도 제발? –

+0

이미지가 게시물에 어떻게 포함되어 있는지 다시 확인해야합니다. 그것은 포스트의 아이들보다 포스트 메타 일 가능성이 더 높다. – David

+0

저는 아직 WordPress에 익숙하지 않습니다. WP가 기본 게시물에 이미지를 추가하는 방법을 수정하지 않았습니다. 여기에서는 사용자 정의 게시물을 다루지 않습니다. 이미지는 기본적으로 게시물의 하위 항목이 아니어야합니까? 나는 3 일 동안 이것을 고치려고 노력하고있다. 이미지를 에코하면 미디어 라이브러리에있는 모든 이미지가로드됩니다. 이상한 이유로 'get_the_ID()/the_ID/$ post-> ID'로 설정된 'post_parent'는 별 문제가되지 않습니다. 나는 루프 내부에있어 루프에서 게시물 ID를 가져와 전체 게시물이 아닌 특정 게시물의 이미지를로드해야합니다. 제발 도와주세요. 미쳤어. –