Wordpress - функция get_post_meta () не возвращает значение?

Я пытаюсь заставить мою тему Wordpress отображать миниатюрное изображение для каждого сообщения, указанного на странице индекса, которое я указываю в настраиваемом поле, добавленном к сообщению в поле, указанном как «изображение». По какой-то причине функция get_post_meta () ничего не возвращает, как бы я ни старался. Что я делаю неправильно?

Вот код:

<?php while (have_posts()) : the_post(); ?>


<div class="posts-wrapper">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    <img src="<?php get_post_meta($post->ID, 'image', true); ?>">

</div>

<?php endwhile; ?>

person Sootah    schedule 08.01.2011    source источник
comment
Если я изменю код на get_post_meta (the_id (), 'image', true); - тогда он просто выводит идентификатор сообщения. Например, в одном из моих постов ссылка просто выводится как 6.   -  person Sootah    schedule 08.01.2011


Ответы (3)


Начиная с WordPress 2.9, есть функция избранных изображений, которую вы можете использовать для миниатюр, что намного проще, чем использование настраиваемых полей. Вот как это сделать:

Добавьте в functions.php:

if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
 add_theme_support( 'post-thumbnails' );
 set_post_thumbnail_size( 200, 200, true ); // Normal post thumbnails -- values: ( width, height, hard-crop-mode );
 add_image_size( 'home-post-thumbnail', 900, 300, true ); // Homepage thumbnail size
 add_image_size( 'single-post-thumbnail', 300, 9999 ); // Permalink thumbnail size
}

Затем вы просто добавляете это туда, где хотите, чтобы эскиз отображался:

<?php the_post_thumbnail( 'single-post-thumbnail' ); // Change according to your thumbnail names ?>

А когда вы пишете сообщение, в правой части страницы есть раздел Избранные изображения. Выберите свой образ и альт! :)

person Jared    schedule 08.01.2011

вы должны повторить возвращаемое значение из функции get_post_meta()

<img src="<?php echo get_post_meta($post->ID, 'image', true); ?>">
person Shakti Singh    schedule 08.01.2011
comment
Пробовал, но по-прежнему выводит только идентификатор сообщения. - person Sootah; 08.01.2011

Для wordpress 5.4.2 я получаю мета-поля, как показано ниже, и это работает. Замените текст «изображение» своим meta_key

<?php $meta = get_post_meta(get_the_ID(),'image',true); echo $meta? $meta['text']: '';?>
person muraguri2005    schedule 19.06.2020