如何自动加载帖子中的图像,因为它存在于Uploads文件夹中

时间:2019-02-28 作者:Omniatom

我想在所有帖子中自动加载三个图片(通过single.php),总是在同一个div(.acf_imgs-centro1)中。其想法是将图像上传到uploads文件夹中,与帖子同名,然后它们将显示在帖子中。我可以用下面的代码来做,但有一个问题。。。我在images div上方有一个静态标题(.imgs\\u h2),我只想加载它(标题),因为加载了任何图像。例如,我可以拥有帖子,但文件夹中还没有图像,因此标题将不可见。没有图像,没有标题。现在,我使用的方法似乎与我想要实现的目标不兼容。非常感谢您的帮助。

<div class="acf_imgs-centro1">
          <h2 class="imgs_h2">Compartilhe nas redes sociais</h2>
          <div class="img-neutra">
             <img alt="Significado de <?php the_title(); ?>" src="http://teste.significadodosnomes.com.br/wp-content/uploads/nomes-unisex/<?php echo $post->post_name; ?>.jpg" onerror="this.style.opacity=\'0\'" >
             </div>
          <div class="img-fem">
             <img alt="Significado de <?php the_title(); ?>" src="http://teste.significadodosnomes.com.br/wp-content/uploads/nomes-femininos/<?php echo $post->post_name; ?>.jpg" onerror="this.style.opacity=\'0\'"></div>
          <div class="img-masc">
             <img alt="Significado de <?php the_title(); ?>" src="http://teste.significadodosnomes.com.br/wp-content/uploads/nomes-masculinos/<?php echo $post->post_name; ?>.jpg" onerror="this.style.opacity=\'0\'" ></div>

              </div>

enter image description here

enter image description here

2 个回复
最合适的回答,由SO网友:mrben522 整理而成

您应该在输出该div之前检查这些文件是否存在。您可以清理标记并将其删除onerror 通过将每个图像div包装在file_exists 检查使用三元值检查文件是否存在,并设置$image 变量(如果是)。像这样:

$image1 = "/nomes-unisex/" . $post->post_name . ".jpg";
$image2 = "/nomes-femininos/" . $post->post_name . ".jpg";
$image3 = "/nomes-masculinos/" . $post->post_name . ".jpg";
$uploadDir = wp_get_upload_dir();

$image1 = file_exists($uploadDir[\'basedir\'] . $image1) ? $uploadDir[\'baseurl\'] . $image1 : \'\';
$image2 = file_exists($uploadDir[\'basedir\'] . $image2) ? $uploadDir[\'baseurl\'] . $image2 : \'\';
$image3 = file_exists($uploadDir[\'basedir\'] . $image3) ? $uploadDir[\'baseurl\'] . $image3 : \'\';
?>
<div class="acf_imgs-centro1">
<?php if ($image1 || $image2 || $image3) {
    ?>
    <h2 class="imgs_h2">Compartilhe nas redes sociais</h2>
    <?php if ($image1) { ?>
        <div class="img-neutra">
            <img alt="Significado de <?php the_title(); ?>" src="<?php echo $image1; ?>">
        </div>
    <?php }
    if ($image2) { ?>
        <div class="img-fem">
            <img alt="Significado de <?php the_title(); ?>" src="<?php echo $image2; ?>">
        </div>
    <?php }
    if ($image3) { ?>
        <div class="img-masc">
            <img alt="Significado de <?php the_title(); ?>" src="<?php echo $image3; ?>">
        </div>
    <?php }
} ?>
</div>

SO网友:hamdirizal

只需先检查文件是否存在,然后再显示DIV。

<?php 
$image_1 = wp_upload_dir()[\'basedir\'] . \'/nomes-unisex/\' . $post->post_name . \'jpg\';
$image_2 = wp_upload_dir()[\'basedir\'] . \'/nomes-femininos/\' . $post->post_name . \'jpg\';
$image_3 = wp_upload_dir()[\'basedir\'] . \'/nomes-masculinos/\' . $post->post_name . \'jpg\';
if(file_exists($image_1) && file_exists($image_2) && file_exists($image_3)):
?>
<div class="acf_imgs-centro1">
    <h2>your code</h2>
    <div>your code</div>
    <div>your code</div>
    <div>your code</div>
</div><!-- .acf_imgs-centro1 -->
<?php endif; ?>