Отображение изображения категории сообщения wordpress

Я хочу отображать изображение-заполнитель, если для публикации нет изображения категории и избранного изображения

Тогда, если есть отображение изображения категории, то вместо этого

Затем, если есть избранное изображение для сообщения, вместо этого отобразите это

    <?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 } }?>

Он работает отдельно от него, только получает изображение категории из самой первой категории, ничего больше

Как я могу изменить свой код, чтобы исправить это и получить изображение любой категории сообщений?

Здесь можно увидеть пример

http://akjservices.foamydev.com/product/fr-sfj-2-7-5k/ => изображение заполнителя по умолчанию

Код указывает, что имя изображения должно быть таким же, как имя категории, например, A06B-6044.png - однако мы рады игнорировать это и просто отображать изображение категории независимо от имени.

Наличие (! Has_post_thumbnail) в вашем операторе if является избыточным. Можете ли вы объяснить, что вы подразумеваете под изображением самой первой категории, на примере того, что вы ожидаете и что получаете? developer.wordpress.org/reference/functions/get_the_category

pendo 10.08.2018 16:51

мой код работал так, что akjservices.foamydev.com/product/a06b-6044-h009 отображал изображение категории при загрузке с правильным названием категории, поскольку A06B-6044 - первая категория сообщений. - однако теперь это тоже не работает .. эти страницы используют тип сообщения WordPress по умолчанию для создания "частичных" страниц на сайте

Lottie 10.08.2018 16:56

Что вы получаете, когда используете var_dump (file_exists ($ categoryImage)); и var_dump ($ categoryImage); перед вашими операторами if

pendo 10.08.2018 17:01

Если вы находитесь вне цикла get_the_category (), он получит все категории. Если вы хотите, чтобы он получил ТОЛЬКО категорию для текущего сообщения, вам нужно быть внутри цикла или явно передать ему postid get_the_ID ()

pendo 10.08.2018 17:08
0
4
57
1

Ответы 1

Вы должны зациклить категории. Вы получаете доступ только к первой, не забудьте удалить [0] после $ category.

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

Другие вопросы по теме