仅显示多个图像域的第一个图像

时间:2015-12-18 作者:themich

我有一个名为“附件”的自定义字段,在该字段中有多个图像(平均10-15个图像)。当我在自定义列帖子中设置此自定义字段时(目前我使用此plugin,), 我看到了每个自定义帖子的每个图片(所以这是一个非常慢的网站)。

如何仅显示自定义字段中图像的第一个图像?

我在WordPress.org forum, 但没有发布解决方案。

这是一个名为“property”的自定义帖子类型。

在此图像中,您可以看到字段和内容的结构:

enter image description here

1 个回复
SO网友:jgraup

下面是获取项目列表、返回第一个项目并显示第一个id中的单个图像的四个示例。


explode

// get your custom field data (this looks like your meta_value)

$meta_value = "378,377,376,375,374,373"; 

// convert csv to array

$ids = explode ( \',\', $meta_value );

// pull the first item out as the variable $id

list($id) = $ids;

// show the image

echo wp_get_attachment_image ( $id, \'medium\' );
<小时>get_attached_media

// assume you have these vals
$post = get_post();
$post_id = $post->ID;

// get the attachments
$attachments = get_attached_media(\'image\', $post_id);
if(count($attachments) > 0) {
    $first_attachment = array_shift($attachments);
    echo wp_get_attachment_image($first_attachment->ID);
}
<小时>get_post_meta

$post = get_post();
$post_id = $post->ID;
$key = \'attachment\';

$generate_if_not_found = false; // for testing
if($generate_if_not_found && empty(get_post_meta($post_id, $key, true))) {
    // write the values if we don\'t have them
    update_post_meta($post_id, $key, array(386, 393, 234, 23, 23, 234));
}

$ids = get_post_meta($post_id, $key, true);
if( ! empty($ids) && count($ids) > 0) {
    $first_id = array_shift($ids);
    echo wp_get_attachment_image($first_id);
}
<小时>get_post_custom_values

$post = get_post();
$post_id = $post->ID;
$key = \'attachment\';

if(is_array($value = get_post_custom_values($key, $post_id))) {
    if(count($value) > 0) {
        if(is_array($ids = maybe_unserialize($value[ 0 ]))) {
            if(count($ids) > 0) {
                $id = array_shift($ids);
                echo wp_get_attachment_image($id);
            }
        }
    }
}
<小时>

Custom Column

function posts_render_custom_columns($column_name, $post_id) {
    if($column_name === \'attachment\') {

        $size = \'thumbnail\';

        $attachments = get_attached_media(\'image\', $post_id);
        if(count($attachments) > 0) {
            $first_attachment = array_shift($attachments);
            echo wp_get_attachment_image($first_attachment->ID, $size);
        }
    }
}

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: