Php 获取伪元素中的特征图像(即:之前或之后)-WordPress

Php 获取伪元素中的特征图像(即:之前或之后)-WordPress,php,html,css,wordpress,pseudo-element,Php,Html,Css,Wordpress,Pseudo Element,我想在伪元素中获得WordPress的特色图像。我使用以下代码以内联方式使用它 <?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); ?> 这是从李斯特先生的评论中得出的,但这里有一种方法可以做到这一点。这不是构造html的最佳方法,但应该可以: <?php $thumb_url = wp

我想在伪元素中获得WordPress的特色图像。我使用以下代码以内联方式使用它

<?php
$thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' );
?>


这是从李斯特先生的评论中得出的,但这里有一种方法可以做到这一点。这不是构造html的最佳方法,但应该可以:

<?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); ?>
<div class="myDiv"></div>
<style type="text/css">
.myDiv:before{
    background-image: url('<?php echo $thumb_url[0]; ?>');
    content: '';
}
</style>

.myDiv:以前{
背景图像:url(“”);
内容:'';
}

我不确定您是否会遇到一些与旧浏览器的浏览器兼容性问题以及外部的标记,但它应该适用于现代浏览器。

这是从李斯特先生的评论中得出的,但这里有一种方法可以做到这一点。这不是构造html的最佳方法,但应该可以:

<?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); ?>
<div class="myDiv"></div>
<style type="text/css">
.myDiv:before{
    background-image: url('<?php echo $thumb_url[0]; ?>');
    content: '';
}
</style>

.myDiv:以前{
背景图像:url(“”);
内容:'';
}

我不确定您是否会遇到一些与旧浏览器的浏览器兼容性问题以及外部的标记,但它应该适用于现代浏览器。

这是从李斯特先生的评论中得出的,但这里有一种方法可以做到这一点。这不是构造html的最佳方法,但应该可以:

<?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); ?>
<div class="myDiv"></div>
<style type="text/css">
.myDiv:before{
    background-image: url('<?php echo $thumb_url[0]; ?>');
    content: '';
}
</style>

.myDiv:以前{
背景图像:url(“”);
内容:'';
}

我不确定您是否会遇到一些与旧浏览器的浏览器兼容性问题以及外部的标记,但它应该适用于现代浏览器。

这是从李斯特先生的评论中得出的,但这里有一种方法可以做到这一点。这不是构造html的最佳方法,但应该可以:

<?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); ?>
<div class="myDiv"></div>
<style type="text/css">
.myDiv:before{
    background-image: url('<?php echo $thumb_url[0]; ?>');
    content: '';
}
</style>

.myDiv:以前{
背景图像:url(“”);
内容:'';
}
我不确定您是否会遇到一些与旧浏览器和外部标记的浏览器兼容性问题,但它应该适用于现代浏览器。

选项1 这里您主要关心的是缓存。您不想将
背景图像
样式写入外部
.css
文件,因为它可能会在每个页面上更改。但是您不想用大量额外的内联样式阻塞主HTML文件

你最好的办法就是把你不想缓存的东西(背景图像和其他样式)分开。我们希望内联不应该缓存的内容,并将其余内容作为外部
.css
文件

假设与特色图像容器相关的样式如下所示:

figure::before {
    display:block;
    height:300px;
    width:500px;
    margin:0;
    background-image:url();
    background-size:cover;
    background-position:center center;
}
只需将
.css
文件保留为完全相同的格式(不要使用
.css.php
),但要拉出
背景图像

然后在标题中,放置以下内容:

<style>
    figure::before {
        <?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); 
        background-image: url(<?php echo $thumb_url[0];?>);
    }
</style>
优势

这使您可以在样式表中直接使用WordPress变量和数据,以及PHP的全部功能。但它仍然以
.css
文件的形式发送到浏览器,因此您可以像平常一样将其排队。这是最容易实现的。注意,确保包含全局
post
对象

缺点

你使用资源缓存吗?如果缓存了
.css
文件,则会遇到问题,因为文件不会在每个页面上更改。在您的特定情况下,每页上的特色图像将不同。如果不缓存,应该可以,但绝对应该缓存,所以可能应该跳过此选项


调整奖金选项 如果您喜欢选项1,但确实需要缓存(您应该这样做),那么可以采取折衷的态度。创建与上面相同的文件,类似于:

styles.css.php
styles.css.php
您可以使用PHP的
include
函数读取文件,而不是使用
wp\u enqueue\u样式将其排入队列

functions.php
文件中创建函数:

function writeInlineCSS() {

    include TEMPLATEPATH . '/styles/styles.css.php';
}
然后在标题中添加:

<style>
    <?php writeInlineCSS(); ?>
</style>

CSS将被拉入并内联编写

优势

缓存不会是问题。此外,您也不会有大的渲染块
.css
资源。加上选项1的优点

缺点

您可能包含大量的CSS内联。可能太多。

选项1 这里您主要关心的是缓存。您不想将
背景图像
样式写入外部
.css
文件,因为它可能会在每个页面上更改。但是您不想用大量额外的内联样式阻塞主HTML文件

你最好的办法就是把你不想缓存的东西(背景图像和其他样式)分开。我们希望内联不应该缓存的内容,并将其余内容作为外部
.css
文件

假设与特色图像容器相关的样式如下所示:

figure::before {
    display:block;
    height:300px;
    width:500px;
    margin:0;
    background-image:url();
    background-size:cover;
    background-position:center center;
}
只需将
.css
文件保留为完全相同的格式(不要使用
.css.php
),但要拉出
背景图像

然后在标题中,放置以下内容:

<style>
    figure::before {
        <?php $thumb_url = wp_get_attachment_image_src(get_post_thumbnail_id($whatWeDo_post->ID), 'single-post-thumbnail' ); 
        background-image: url(<?php echo $thumb_url[0];?>);
    }
</style>
优势

这使您可以在样式表中直接使用WordPress变量和数据,以及PHP的全部功能。但它仍然以
.css
文件的形式发送到浏览器,因此您可以像平常一样将其排队。这是最容易实现的。注意,确保包含全局
post
对象

缺点

你使用资源缓存吗?如果缓存了
.css
文件,则会遇到问题,因为文件不会在每个页面上更改。在您的特定情况下,每页上的特色图像将不同。如果不缓存,应该可以,但绝对应该缓存,所以可能应该跳过此选项


调整奖金选项 如果您喜欢选项1,但确实需要缓存(您应该这样做),那么可以采取折衷的态度。创建与上面相同的文件,类似于:

styles.css.php
styles.css.php
您不必使用
wp\u enqueue\u样式
,而是使用PHP的
include
fun来读取文件