显然,由于您希望每个页面都有不同的背景图像,因此不能在静态文件中包含css。您必须动态生成它。
最简单的方法是在<style>
模板文件中的标记。其他答案向您展示了如何做到这一点。
最“WordPress”的方式会有所不同,即在您的functions.php
文件为虚拟样式表,使用wp_add_inline_style
. 从本质上讲,这意味着您正在将一些语句添加到已经存在的css文件中。您的样式最终会出现在页面的头部,即它所属的位置,而不是正文(正文有效,但语义不正确)。
因此,在函数文件中,例如:
add_action (\'wp_enqueue_style\',\'wpse271934_add_styles\');
function wpse271934_add_styles () {
global $post;
$extra_styling = \'\';
if (is_page() || is_single ()) {
$image = get_the_post_thumbnail ($post->ID,\'large\');
if (!empty($image))
$extra_styling = \'.post, .page {background:url(\' . $image . \');}\';
}
// assuming style.css has the handle \'main_style\' in your theme
wp_add_inline_style (\'main_style\', $extra_styling);
}
在上面的示例中(我没有测试,所以要注意bug),我们将背景图像添加到单个页面和帖子中。但你有更多的可能性。比如说
testing for 404 页面并为此定义背景图像,如果没有背景,则插入特定的背景,对不同类别的页面执行不同的操作,等等。因此,除了是最正确的方法之外,这也给了你最大的可能性来控制你的背景。