2016-02-01 3 views
1

Я использую пользовательские обмены и поля для Wordpress, и я добавил поле изображения.Meta box размер поля изображения

Во внешнем интерфейсе я могу распечатать изображение, но я не могу добавить для него размер применяемого изображения.

В моем модуле я поставил CMB поле:

array(
    'name' => __('Image', 'cmb'), 
    'desc' => __('Upload an image or enter a URL.', 'cmb'), 
    'id' => $prefix. 
    'image', 
    'type' => 'file', 
    'allow' => array('url', 'attachment'), 
), 

Для тестирования в single.php файле у меня есть:

global $post; 
$image = get_post_meta($post->ID, "_cmb_image", true); 

Это работает для печати изображения в полном размере:

<img src="<?php echo $image; ?>" alt="" /> 

Я пробовал различные способы печати изображения в определенном размере, который установлен в теме functions.php.

Например попытался это:

<?php echo wp_get_attachment_image(get_post_meta(get_the_id(), '_cmb_image', true), 'thumbnail', false, array('class' => 'vert-align-mid')); ?> 

И это:

<?php echo wp_get_attachment_image($image, 'thumbnail'); ?> 

Это не работает, и я получаю пустое значение. Любая помощь в том, как печатать изображение в нестандартном размере?

+0

wp_get_attachment_image (интермедиат $ attachment_id, строка | массив $ размер = 'эскиз', BOOL $ значок = ложь, строка | массив $ атр = ''). . передать идентификатор присоединения вместо объекта изображения –

+0

Не могли бы вы привести пример кода, ссылающегося на мои примеры? Не получается, чтобы это сработало. – ace

ответ

1

Я нашел решение для этого. Тип поля CMB также сохранит идентификатор. Он хранится: $id . '_id'. Так что в моем случае это будет _cmb_image_id.

Добавьте их в файл шаблона.

<?php image = wp_get_attachment_image(get_post_meta(get_the_ID(), '_cmb_image_id', 1), 'thumbnail'); ?> 

После этого эхо-изображения:

<?php echo $image; ?> 
+0

Что делать, если их несколько изображений? –

0

Из этого кода вы получаете объект изображения:

$image = get_post_meta($post->ID, "_cmb_image", true); 

Теперь извлекать изображения ID из этого объекта и перейти на ниже функции:

$image->ID только пример, это должно быть то, что вы попадание в этот объект.

wp_get_attachment_image (int $image->ID, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '') 
+0

Если есть несколько изображений, то что нам делать, потому что с помощью этого мы можем получить только одно изображение. –

Смежные вопросы