如何创建以逗号分隔的附加映像ID列表?

时间:2014-11-21 作者:Heather

我正在尝试获取一个帖子中附加图像的图像id。我在举个例子posted here, 但是,我很难只返回ID,而不是整个数组。

我的目标是返回一个以逗号分隔的附加图像ID列表。

1, 2, 3, 4, 5
以下是我的功能:

function wpse_get_images() {
    global $post;
    $id = intval( $post->ID );
    $size = \'medium\';
    $attachments = get_children( array(
        \'post_parent\'    => $id,
        \'post_status\'    => \'inherit\',
        \'post_type\'      => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'order\'          => \'ASC\',
        \'orderby\'        => \'menu_order\'
    ) );
    if ( empty( $attachments ) )
        return \'\';

    $output = "\\n";

    /**
     * Loop through each attachment
     */
    foreach ( $attachments as $id  => $attachment ) :

        $title   = esc_html( $attachment->post_title, 1 );
        $img     = wp_get_attachment_image_src( $id, $size );
        $imgID   = wp_get_attachment_metadata( $attachment_id );   
        $imgID   = (string)$imgID;
        $output .= $imgID->$attachment_id.\', \'; // prints: 1,2,3,4,5,6,8,9,         

    endforeach;

    return $output;
}

1 个回复
SO网友:birgire

您可以在循环中尝试此一行程序,而不是上面的所有代码:

$ids = join( \',\', wp_list_pluck( get_attached_media(\'image\' ), \'ID\' ) );
我们从get_attached_media() 输出

另一种方法是使用:

$ids = join( \',\', get_attached_media( \'_image_ids\' ) );
我们引入了一个新的输入参数_image_ids, 使用以下插件支持:

/** 
 * Plugin Name: Enhance the get_attached_media() function.
 * Description: Support for the custom \'_image_ids\' parameter.
 * Plugin URI:  http://wordpress.stackexchange.com/a/169152/26350
 * Author:      birgire
 * Version:     0.0.1
 */
add_filter( \'get_attached_media_args\', function( $args, $type, $post ) {
    if( \'_image_ids\' === $type )
    {
        $args[\'post_mime_type\'] = \'image\';
        $args[\'fields\']         = \'ids\';
    }
    return $args;
}, 10, 3 );

结束

相关推荐

将两个WP_Query对象拼接在一起

几天来,我一直在尝试制作一个显示我所有帖子的主页,每发布两篇帖子,就会有一篇推荐信。我找到了几十篇文章,描述了如何在循环中计数,并每隔n次放置一个东西。这没问题,但问题是,运行循环a,然后每隔“n”次,放置循环B中的下一项。WP希望您在启动另一个循环之前重置一个循环。因此,我需要分别查询每个集合,解析查询,并在传递到循环之前按照我想要的顺序构建一个新的集合。问题是,WP_Query objects 不是数组。所以我不知道该怎么做。除了一句台词外,我把整件事都安排好了。我推迟了写这行代码,就像我写数组一样,