在PHP中分配Img类

时间:2017-10-12 00:46:12

标签: php wordpress advanced-custom-fields

我创建了以下功能,用于使用ACF收集将在主页上用作背景图像的图像。一周中的每一天都会有不同的图像。我想对图像使用lazyload,但我不知道如何在这种情况下分配图像类。感谢任何建议。

function my_custom_background() {

if ( ! is_front_page() ) {
    return;
}

$img_id = get_field( strtolower( date( 'l' ) ) );

echo "<style>\n";

// Large desktops.

$img = wp_get_attachment_image_src( $img_id, 'large_desktop_background' );


echo "body {\n";
echo sprintf( "\tbackground-image: url(%s);\n", $img[0] );
echo "}\n";


// Small desktops.


$img = wp_get_attachment_image_src( $img_id, 'small_desktop_background' );


echo "@media (max-width: 1199px) {\n";
echo "\tbody {\n";
echo sprintf( "\t\tbackground-image: url(%s);\n", $img[0] );
echo "\t}\n";
echo "}\n";


// Tablets.

$img = wp_get_attachment_image_src( $img_id, 'tablet_background' );


echo "@media (max-width: 991px) {\n";
echo "\tbody {\n";
echo sprintf( "\t\tbackground-image: url(%s);\n", $img[0] );
echo "\t}\n";
echo "}\n";

// Mobile.

$img = wp_get_attachment_image_src( $img_id, 'phone_background' );


echo "@media (max-width: 767px) {\n";
echo "\tbody {\n";
echo sprintf( "\t\tbackground-image: url(%s);\n", $img[0] );
echo "\t}\n";
echo "}\n";

echo "</style>\n";


}
add_action( 'wp_head', 'my_custom_background' );

1 个答案:

答案 0 :(得分:0)

您可以使用过滤器将类添加到body标记。

add_filter( 'body_class', function( $classes ) {
    return array_merge( $classes, array( 'class-name' ) );
} );