2014-02-20 8 views
2

나는 WordPress CMS에 비교적 익숙하며 여러 이미지 필드를 포함한 사용자 정의 필드 구현에 포드를 사용하기로 결정했습니다. 관리자 UI가 마음에 드는 동안 나는 포스트 템플릿 파일의 이미지를 출력하는 데 약간의 혼란을 겪었습니다.템플릿 파일에 Pod 기반 이미지를 표시하는 가장 좋은 방법

많은 연구와 실험 끝에 필자가 사용한 기술을 공유하고 싶었습니다. 분명히 내가 알고 싶어하는 더 좋은 방법이 있다면.

답변

1

from the Pods forum을 처음 배웠던 점은 포드가 이미지를 '첨부 파일'게시물로 데이터베이스에 저장한다는 것입니다. 따라서 일반 WordPress의 일반 첨부 파일에 액세스 할 때 액세스 할 수 있습니다.

첨부 프로그래밍 WP beginners에서 적응이 조각 사용하여 특정 게시물에 대한 모든 첨부 파일을 잡을 수 있다는 것을 의미 자신의 게시물에 부모 - 자식 관계가 있습니다

<?php 
if ($post->post_type == 'post-type' && $post->post_status == 'publish') { 
    $attachments = get_posts(array(
     'post_type' => 'attachment', 
     'posts_per_page' => -1, 
     'post_parent' => $post->ID, 
     'exclude'  => get_post_thumbnail_id() 
    )); 

    if ($attachments) { 
     foreach ($attachments as $attachment) { 
      $class = "post-attachment mime-" . sanitize_title($attachment->post_mime_type); 
      $thumbimg = wp_get_attachment_image($attachment->ID, 'thumbnail'); 
      echo '<li class="' . $class . ' data-design-thumbnail">' . $thumbimg . '</li>'; 
     } 

    } 
} 
?> 

을하지만이 솔루션은 때문에 차선입니다 게시물과 이미지 간의 상위 - 하위 관계는 이미지가 미디어 라이브러리에서 삭제 된 경우에만 손상 될 수 있습니다. 그래서 :

  1. 에서 제거 이미지는 여전히 다른 포스트에 이미지를-목적을 다시 할 경우 원래의 게시물
  2. 에 위의 코드에 의해 출력 될 것입니다 나중에 사용하기 위해 라이브러리에 남아있는 원래의 게시물 만입니다 포드 필드 위의 코드는 새 항목에 그것을 인쇄하지 않습니다.
  3. 첨부 파일 시스템에 필드 수준 관계가 기록되지 않습니다. 따라서 위의 코드에서 Post에 두 개 이상의 이미지 기반 Pod 필드가있는 경우 해당 필드가 무엇이든 상관없이 모두 인쇄됩니다.

아래와 같이 'wp_get_attachment_image'기능 here on the WordPress support forums을 설명하는 'get_post_meta'기능을 결합하는 I 필드에 의해 포드 기초하여 화상 데이터를 출력하기위한 가장 좋은 방법을 발견했다있다.

<?php 
if (get_post_meta(get_the_ID(), 'image_field', false)){ 
    $image_array = get_post_meta(get_the_ID(), 'image_field', false); 
} 
if ($image_array) { 
    echo '<ul>'; 
    foreach ($image_array as $image) { 
     $class = "post-attachment mime-" . sanitize_title($image->post_mime_type); 
     $thumbimg = wp_get_attachment_image($image['ID'], 'thumbnail'); 
     echo '<li class="' . $class . ' data-design-thumbnail">' . $thumbimg . '</li>'; 
    } 
    echo '</ul>'; 
} 
?> 

이전 기능은 현재 이미지 만있는 개체를 제공합니다. 후자는 첨부 파일 시스템으로 제한된 크기 및 대체 정보로 해당 이미지를 렌더링합니다.