2013-06-26 6 views
0

커스텀 게시 유형에 대한 모든 추천 이미지 URL을 가져 오려고하는 정말 이상한 결과가 나타납니다.Wordpress 네트워크 wp_get_attachment_url은 게시물 루프의 첫 번째 URL 만 가져옵니다.

첫 번째 URL 만 가져오고 다른 모든 URL은 비워 둡니다. 게시물 ID를 확인했는데 가치가 있습니다. 또한 미리보기 이미지 ID가 올바르게 당겨집니다. 그 값을 하드 코드 된 함수에 넣으면 테마 페이지에 적절한 URL이 반환됩니다.

global $post; 
       $type = 'slider'; 
       $args=array(
        'post_type' => $type, 
        'post_status' => 'publish', 
        'posts_per_page' => 5); 

       $slider_posts = null; 
       $slider_posts = new WP_Query($args); 
       while ($slider_posts->have_posts()) { 
        $slider_posts->the_post(); 
        $post_id = $post->ID; 
        $thumbnail_id = intval(get_post_thumbnail_id($post_id)); 

        if (has_post_thumbnail()) { 
         $url = wp_get_attachment_url($thumbnail_id); 
         ?> 

        <div class="slide"> 
         <img class="slider_images" src="<?php echo $url; ?>" width="587" height="330" /> 
         <div> 
          <h4><?php the_title(); ?></h4> 
          <p id="spacer">&nbsp;</p> 
          <p><?php the_excerpt(); ?></p> 
          <p><a href="<?php the_permalink(); ?>">Read More...</a></p> 
         </div> 
        </div> 
        <?php 
        } 
       } 
       wp_reset_query(); 

       ?> 
      </div> 

URL은 무슨 일이 일어나고 있는지 볼 수 여기에 있습니다 : : 여기 코드는 내가 슬라이더의 URL을 사용하고 http://template.seniorshomecaregivers.com/

.

처음 보았 듯이 첫 번째 URL 만 가져 오면 모두 공백으로 표시됩니다.

미리 도움을 주셔서 감사합니다.

+0

네트워크로 연결된 설정에서 wp_get_attachment_url에 문제가있는 것 같습니다. 맞춤 게시물 유형에 대한 모든 게시물의 루프에서 호출 될 때만 첫 번째 URL 만 가져옵니다. –

+0

또한이 문제는 콘텐츠 필터를 사용할 때만 발생합니다. 예를 들어, 콘텐츠의 [somevar]를 데이터베이스의 값으로 바꾼 경우 콘텐츠 필터가 없으면 모두 제대로 작동합니다. –

답변

0

솔루션을 원하는 사용자를 위해이 코드는 맞춤 게시물이 추가되거나 업데이트 될 때 추천 메타 데이터에 추천 이미지 URL을 저장합니다. 그런 다음 게시 ID와 메타 이름을 사용하여 게시물 메타에서 루프의 URL을 가져와야합니다. 이렇게하면 썸네일 ID와 url을 얻기 위해 myrid를 호출하지 않아도됩니다.

function add_slider_posttype() { 
$labels = array(
    'name'    => _x('Slider', 'post type general name'), 
    'singular_name'  => _x('Slider', 'post type singular name'), 
    'add_new'   => _x('Add New', 'book'), 
    'add_new_item'  => __('Add New Slide'), 
    'edit_item'   => __('Edit Slide'), 
    'new_item'   => __('New Slide'), 
    'all_items'   => __('All Slides'), 
    'view_item'   => __('View Slides'), 
    'search_items'  => __('Search Slides'), 
    'not_found'   => __('No slides found'), 
    'not_found_in_trash' => __('No slides found in the Trash'), 
    'parent_item_colon' => '', 
    'menu_name'   => 'Slider' 
); 

$args = array(
    'labels'  => $labels, 
    'description' => 'Holds our slides and slider specific data', 
    'public'  => true, 
    'menu_position' => 25, 
    'supports'  => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'), 
    'has_archive' => true, 
); 

register_post_type('slider', $args); 

} 
add_action('init', 'add_slider_posttype', 0); 

function save_slider_meta($post_id) { 

if(get_post_type($post_id) == "slider"){ 
    $thumbnail_id = get_post_thumbnail_id($post_id); 
    $url = wp_get_attachment_url($thumbnail_id); 

    if (!empty($url)){ 
     update_post_meta($post_id, 'slider_img_url', $url); 
    } 
} 

} 

add_action('save_post', 'save_slider_meta'); 
관련 문제