Intereting Posts
Невозможно получить все теги из определенных категорий Изменить порядок отправки по шаблону таксономии Как добавить фрагмент кода PHP ко всем страницам публикации? Как запрашивать пользовательские сообщения с использованием динамической категории Как роли хранятся в базе данных? Как я могу показать много сообщений, которые есть у автора в неделю? Удалить wp_add_inline_style Нужно ли нам переводить html в Javascript? Как? получить список всех зарегистрированных действий Как использовать shortcode извлечения в цикле? изменить плагин RSS Функция агрегатора для отображения данных из цикла Buddypress – добавление пользовательских сообщений для участников Получать данные из пользовательского типа сообщений в другой настраиваемый тип сообщения? Ошибка HTTP при загрузке видеофайла mp4 Почему WP перенаправляется на главную страницу после отправки формы GET?

Добавление выделенного изображения в цикл foreach WordPress

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

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

<?php // Custom loop that adds a clearing class to the first item in each row $args = array('numberposts' => -1, 'order' => 'ASC', 'post_type' => 'treatments' ); //For this example I am setting the arguments to return all posts in reverse chronological order. Odds are this will be a different query for your project $allposts = get_posts($args); $numCol = 2; // Set number of columns // Start Counter $counter = 0; foreach ($allposts as $post) { $content = '<div class="six columns'.' '.($counter % $numCol == 0 ? ' alpha' : 'omega').'">'; // Add class to the columns depending on if it is odd or even $content .= '<section class="treatments lightgrey-background">'; $content .= '<figure>'; $content .= '<img src="'.($post->the_post_thumbnail->small).'" />'; $content .= '</figure>'; $content .= '<h4>'.$post->post_title.'</h4>'; $content .= $post->post_excerpt; $content .= '</section>'; $content .= '</div>'; echo $content; $counter ++; } ?> 

Я бы хотел получить обратный образ, если пользователь не указал изображение. Я бы предположил, что утверждение if else, подобное короткой руке, используемой для добавления класса в столбцы, было бы уместным? Вот код изображения, который находится в файле функций.

 <?php // add featured image add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 120, 120, true ); add_image_size( 'small', 120, 120, true ); add_image_size( 'medium', 330, 330, true ); add_image_size( 'front_page', 460, 350, true); add_image_size( 'header', 660, 200, true); add_image_size( 'large', 600, 390, true ); ?> 

Solutions Collecting From Web of "Добавление выделенного изображения в цикл foreach WordPress"

Это синтаксическая проблема:

 $content .= '<img src="'.($post->the_post_thumbnail->small).'" />'; 

Функция the_post_thumbnail() не является частью объекта $post и будет печатать , а не возвращать миниатюру сообщения, даже если этот метод будет работать.

Попробуйте вместо этого использовать get_the_post_thumbnail() :

 $thumbnail = get_the_post_thumbnail( $post->ID, 'small' ); 

Обратите внимание, что эта функция возвращает полностью сформированную разметку тегов <img> , поэтому вам нужно будет соответствующим образом адаптировать ваш код:

 $content .= get_the_post_thumbnail( $post->ID, 'small' ); 

редактировать

Обратите внимание: 'small' – это размер изображения, уже определенный WordPress, поэтому вы захотите использовать другое имя. Я бы использовал что-то описательное, такое как 'post-two-column' :

 add_image_size( 'post-two-column', 120, 120, true ); 

Затем, соответственно, укажите в своем цикле:

 $content .= get_the_post_thumbnail( $post->ID, 'post-two-column' );