изображение не отображается в нужном месте с помощью метабокса плагина

Я использовал плагин (Meta box 4.8.3) для создания пользовательского мета-поля и получения значений в пользовательском сообщении. Если пользовательское поле мета-поля является текстовым, функция возвращает значение. Если это изображение, то оно не показывает изображения.

**Зарегистрировать пользовательский мета-бокс**

    add_filter( 'rwmb_meta_boxes', 'your_prefix_meta_boxes' );
    function your_prefix_meta_boxes( $meta_boxes ) {
    $meta_boxes[] = array(
    'title'      => __( 'Image Gallery', 'textdomain' ),
    'post_types' => 'events',
    'fields'     => array(
        array(
            'name' => __( 'Image Upload', 'your-prefix' ),
            'id'   => $prefix . 'test_image',
            'type' => 'image_advanced',
        ),

    ),
);
return $meta_boxes;

}

Чтобы получить изображения, используйте этот код

   function getgallery(){
    //global $post;

            $image =  wp_get_attachment_image( get_post_meta( get_the_ID(), 'test_image',1));
            if ( !empty( $image ) ) {
            foreach ( $image as $images ) {
             ?>
                <div class="eventsinfo-detail">
                    <div class="row events-info">
                        <div class="col-sm-3">
                          <div class="events-detail">
                              <div class="event-image">
                              <a href="#"><?php echo $image; ?></a>
                              </div>
                          </div>
                        </div>
                    </div>                                                                                                                                                                                                                                                                                                                                                                                      
                </div>
                 <?php
                }
            }   
}

Как я могу отобразить изображения, которые я загрузил через панель инструментов.

Вопрос обновлен


person Waqas_aamer    schedule 24.03.2016    source источник


Ответы (2)


Пожалуйста, попробуйте приведенный ниже код и подтвердите, работает ли код?:

Показать одно изображение

$attachment_id = get_post_meta($post->ID, 'test_image', true);
echo wp_get_attachment_image(attachment_id, 'thumbnail');

Отображать несколько изображений

$attachment_ids = get_post_meta($post->ID, 'test_image');
foreach($attachment_ids AS $attachment_id){
    echo wp_get_attachment_image($attachment_id, 'thumbnail');
}

Ваш код Попробуйте это

 function getgallery(){
        $images =  wp_get_attachment_image( get_post_meta( get_the_ID(), 'test_image'));
        if ( count( $images ) > 0 ) {
        foreach ( $images AS $image ) {
         ?>
            <div class="eventsinfo-detail">
                <div class="row events-info">
                    <div class="col-sm-3">
                      <div class="events-detail">
                          <div class="event-image">
                          <a href="#"><?php echo $image; ?></a>
                          </div>
                      </div>
                    </div>
                </div>                                                                                                                                                                                                                                                                                                                                                                                      
            </div>
             <?php
            }
        }   
person Mehul Gohil    schedule 25.03.2016
comment
@ waqasjr.developer: я перепроверил свой код на своем конце, и он отлично работает с моим кодом из нескольких изображений. Не могли бы вы опубликовать свой обновленный код, чтобы я мог вам помочь? - person Mehul Gohil; 25.03.2016
comment
$image = wp_get_attachment_image(get_post_meta(get_the_ID(), 'test_image',1)); foreach ($image as $images) { ?› ‹div class=eventsinfo-detail› ‹a href=#›‹?php echo $image; ?›‹/a› ‹/div› ‹/div› ‹/div› ‹/div› ‹?php } } } - person Waqas_aamer; 25.03.2016
comment
есть ли разница между ними - person Waqas_aamer; 25.03.2016
comment
@waqasjr.developer: Попробуйте свой код, который я изменил. Чтобы отобразить несколько изображений, не используйте последний параметр или используйте FALSE вместо TRUE в последнем параметре get_post_meta и удалите префикс $, префикс $ не нужен. - person Mehul Gohil; 25.03.2016
comment
@ waqasjr.developer: Попробуйте обновить ответ в соответствии с вашим обновленным вопросом. - person Mehul Gohil; 25.03.2016
comment
Давайте продолжим обсуждение в чате. - person Waqas_aamer; 25.03.2016

$attachment_args = array( 
'post_type' => 'attachment', 
'post_status' => 'inherit', 
'post_parent' => get_the_ID(), 
); 

$images = new WP_Query($attachment_args); 

if ($images->have_posts()) : 

while ($images->have_posts()) : $images->the_post(); 

$img = wp_get_attachment_image_src(get_the_ID(),'test_image'); // where get_the_ID() is id of attachment 
echo '<img src="'. esc_url( $img[0]) .'" />'; 

endwhile; 


endif; 

wp_reset_postdata();

Попробуйте обновленный код сейчас...

person Hasmukh Mistry    schedule 25.03.2016
comment
он показывает три статических изображения. Не увеличивается и не уменьшается - person Waqas_aamer; 25.03.2016
comment
добавить post_count в аргументы - person Hasmukh Mistry; 28.03.2016
comment
$attachment_args = array( 'post_type' =› 'вложение', 'post_status' =› 'наследовать', 'post_parent' =› get_the_ID(), 'post_count' =› -1 ); - person Hasmukh Mistry; 28.03.2016