Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示Wordpress帖子类别图像_Php_Wordpress - Fatal编程技术网

Php 显示Wordpress帖子类别图像

Php 显示Wordpress帖子类别图像,php,wordpress,Php,Wordpress,我想显示占位符图像,如果没有类别图像和一篇文章没有特色图像 然后,如果有类别图像显示,则改为 然后,如果有帖子的特色图片,则改为显示 <?php if (has_post_thumbnail()) { ?> <img src="<?php echo the_post_thumbnail_url(); ?>" class="single-blog-post-image" alt="Post Featured Image" /> &

我想显示占位符图像,如果没有类别图像和一篇文章没有特色图像

然后,如果有类别图像显示,则改为

然后,如果有帖子的特色图片,则改为显示

    <?php if (has_post_thumbnail()) { ?>
        <img src="<?php echo the_post_thumbnail_url(); ?>" class="single-blog-post-image" alt="Post Featured Image" />
    <?php } else {
        $category = get_the_category();
        $categoryImage = 'http://akjservices.foamydev.com/wp-content/uploads/'.$category[0]->category_nicename.'.png';
            if (!has_post_thumbnail() && file_exists($categoryImage)) {
            ?>
            <img class="single-blog-post-image" src="<?php bloginfo('url'); ?>/wp-content/uploads/<?php echo $category[0]->category_nicename ; ?>.png" alt="Category Featured Image" />
            <?php } else { ?>
                <img src="/wp-content/themes/akj/img/placeholder-part-image.jpg" alt="AKJ Services Default Image" class="single-blog-post-image">
     <?php } }?>

“class=”单个博客帖子图片“alt=”帖子特色图片“/>
/wp content/uploads/.png“alt=”类别特色图片“/>
它只从第一个类别中获取类别图像,其他什么都没有

我如何修改我的代码来修复它,这样我就可以得到任何帖子类别的图片

你可以在这里看到一个例子

=>默认占位符图像


代码指定图像名称必须与类别名称相同,例如A06B-6044.png-但是我们很乐意忽略它,因为它只显示类别图像,而不管名称是什么。

您应该循环类别,您访问的是唯一的第一个类别,不要忘了在$category之后删除[0]

$categories = get_the_category()
foreach( $categories as $cateogry ){
  $category->category_nicename;
  ...
}

在if语句中包含(!has_post_缩略图)是多余的。你能用一个例子来解释你所期望的和你得到的第一类图片是什么意思吗?我的代码工作正常,因此上传时会显示类别图像,并带有正确的类别名称,因为A06B-6044是第一个帖子类别。-但是现在它也不起作用了。。这些页面使用默认的wordpress post类型在站点上创建“部分”页面。当您进行var_转储(file_exists($categoryImage)),您会得到什么;和var_dump($categoryImage);在if语句之前,如果您在get_the_category()的循环之外,那么它将获取所有类别。如果您希望它只获取当前帖子的类别,那么您需要在循环中,或者显式地将postid get_the_ID()传递给它