Как получить произвольное поле изображения для конкретного ID записи

19 дек. 2012 г., 22:32:56
Просмотры: 16.9K
Голосов: 0

У меня есть страница, на которой я вывожу контент из другой записи, вне основного цикла.

Мне удалось успешно получить контент указанной записи, но я не могу получить изображение из произвольного поля (advanced custom image field).

Этот код работает для получения контента записи с ID 299:

$my_id = 299;
$post_id_299 = get_post($my_id);

$content_299 = $post_id_299->post_content;
$content_299 = apply_filters('the_content', $content_299);
$content_299 = str_replace(']]>', ']]>', $content_299);
$content_299_chars = 238; 
$modcontent_299 = substr($content_299, 0, $content_299_chars);

<p><?php echo $modcontent_299; ?></p>

А вот что я пытаюсь сделать, чтобы получить изображение из записи с ID 299 (если оно существует):

$attachment_id = get_field('image', 299);
$size = 'full';
$image = wp_get_attachment_image_src( $attachment_id, $size ); 

if( get_field('image') ):
   echo '<img src="' . $image[0] . '" alt="' . the_title() .'" width="238" height="158" />';
endif; 

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

0
Все ответы на вопрос 2
3

см. документацию для get_field. измените:

$attachment_id = get_field('image');

чтобы передать ID записи в качестве второго аргумента:

$attachment_id = get_field('image', 299);

или:

$attachment_id = get_field('image', $my_id);
19 дек. 2012 г. 22:56:47
Комментарии

Спасибо за ответ, Мило, к сожалению, это не работает - ничего не возвращается.

ByteMyPixel ByteMyPixel
19 дек. 2012 г. 23:00:04

Твое поле настроено на возвращение ID изображения, а не объекта изображения или какого-либо массива?

Milo Milo
19 дек. 2012 г. 23:01:21

Понял - оставшаяся проблема была в условии, мне также нужно было обновить if( get_field('image') ): на if( get_field('image', 299) ): - вот и все! Спасибо за помощь!

ByteMyPixel ByteMyPixel
19 дек. 2012 г. 23:07:27
0

Думаю, ты используешь свой код для отображения заголовка и альтернативного текста у изображения записи, тогда попробуй это.

    $post_title  = get_the_title($my_id);

    echo get_the_post_thumbnail($my_id,
        'full', 
        array(
            'alt'   => $post_title, 
            'title' => $post_title,
            'class' => 'my_post_img_class'
        )
    );

Это выведет

<img src="your_image_path.jpg" alt="post_title" title="post_title" class="my_post_img_class" />

Или используй эту функцию ниже для получения пользовательского поля записи get_post_field('post_content', $my_id);

14 мая 2013 г. 11:51:22