Вытягивание избранного изображения в качестве фона на WordPress

Я пытаюсь выяснить, как использовать изображение в качестве фона (на WordPress), но не могу заставить его работать.
Смотрите ниже код, который я использую. $ thumbimg должен вытягивать показанное изображение, но, очевидно, я что-то там не так делаю.

            $lessons = get_posts( $args );

if( count( $lessons ) > 0 ) {

$html .= '<section class="module-lessons">';

$html .= '<header><h3>' . __( 'Lessons', 'sensei_modules' ) . '</h3></header>';
$thumbimg = wp_get_attachment_image_src( get_post_thumbnail_id($lesson->ID), array( 200,200 ), false, '' );

$html .= '<ul>';

foreach( $lessons as $lesson ) {
$html .= '<li class="lesson-items" style="background: url(<?php echo $thumbimg[0]; ?>)>';
$html .= '<a href="' . esc_url( get_permalink( intval( $lesson->ID ) ) ) . '" title="' . esc_attr( get_the_title( intval( $lesson->ID ) ) ) . '">' . get_the_title( intval( $lesson->ID ) ) . '</a>';

$html .= '</li>';

// Build array of displayed lesson for exclusion later
$displayed_lessons[] = $lesson->ID;
}

$html .= '</ul>';

$html .= '</section>';

}

Я не могу также заставить стиль = «фон ..» читать php, как я хотел бы.

0

Решение

Это не сработает, потому что вы неправильно указали ID. Код для миниатюры должен выглядеть примерно так:

wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), 'large' ) ;

вы делаете это правильно, за исключением того факта, что вы звоните $lesson->ID на объекте $lesson который не существует вне цикла после него 🙂

Редактирование вашего кода:

        $lessons = get_posts( $args );

if( count( $lessons ) > 0 ) {

$html .= '<section class="module-lessons">';

$html .= '<header><h3>' . __( 'Lessons', 'sensei_modules' ) . '</h3></header>';

$html .= '<ul>';

foreach( $lessons as $lesson ) {
// This should be inside the loop
$thumbimg = wp_get_attachment_image_src( get_post_thumbnail_id($lesson->ID), array( 200,200 ), false, '' );
$html .= '<li class="lesson-items" style="background-image: url("'. $thumbimg[0] . '")>';
$html .= '<a href="' . esc_url( get_permalink( intval( $lesson->ID ) ) ) . '" title="' . esc_attr( get_the_title( intval( $lesson->ID ) ) ) . '">' . get_the_title( intval( $lesson->ID ) ) . '</a>';

$html .= '</li>';

// Build array of displayed lesson for exclusion later
$displayed_lessons[] = $lesson->ID;
}

$html .= '</ul>';

$html .= '</section>';

}

Что касается фона в CSS, используйте background-image: url ()

0

Другие решения

Других решений пока нет …