Wordpress网络wp_get_attachment_url仅获得post循环中的第一个URL

时间:2013-06-26 14:23:42

标签: image wordpress url networking featured

我得到了一些非常奇怪的结果,试图将所有特色图片网址拉为自定义帖子类型。

只会拔出第一个网址,其他所有网址都显示为空白。我检查了帖子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>

要查看正在发生的事情的网址如下: http://template.seniorshomecaregivers.com/

我正在使用滑块中的网址。

正如你所看到的那样,它只会拉出第一个网址,然后它们都会返回空白。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

对于那些想要解决方案的人来说,当添加或更新自定义帖子时,此代码会将特色图片网址存储在post meta中。然后,您只需要通过post id和meta name在循环中获取post meta中的url。这消除了获取缩略图ID然后是网址的调用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');