Intereting Posts
Как я могу настроить это меню? Постоянная ссылка /% category% /% postname% / возвращает 404 на OSX Сортировка результатов из JSON-API в настраиваемых полях Как вставить код отслеживания JS на страницу с помощью редактора WP? Войдите в учетные записи социальных сетей без создания учетной записи WP Выделить синтаксис Inline Как я могу динамически обновлять класс в моем коротком коде? несколько запросов для получения сообщений из одной категории? Overide enqueue в не подключаемой функции через дочернюю тему Как создать пользовательский пакет установки WordPress? Ограничить категорию / тег Dropdown В blog_id в Multisite Install с глобальными категориями / тегами Как использовать шаблон пользовательских комментариев Улучшен ли WordPress с установленным завитком? Удалить фильтр типа post, добавленный плагином в окончательный запрос Невозможно установить пользовательский заголовок на некоторых настройках WordPress

Добавление выделенного изображения в цикл 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' );