Вывод изображений для разделов и тегов на WordPress без плагинов

Admin PHP, WordPress

PHP код для вывода изображений без плагинов, в категориях (разделах) и тегах для сайта на WordPress.

Создал несколько вариантов. Первый вариант выводит изображения, если ко всем категориям существуют изображения. В этом случае не нужно делать проверку на наличие файла на сервере. И второй вариант, когда изображения имеются не для всех категорий и следует выводить только если они существуют на сервере.

1. Если ко всем категориям имеются изображения

Каждый файл изображения именуем в название категории на WordPress. Например, если у раздела или тега его slug имеет название — comedy, то имя файла должно быть следующим comedy.jpg. Кладём этот файл например в директорию /images/genres/.

В коде ниже мы отдельно выводим slug для категорий и тегов, потому что это делается различными способами.

Код для вывода подобных картинок будет следующим:

<figure class="archive-description-img">

<img src="<?php bloginfo('url'); ?>/images/genres/<?php

if (is_category()) {
    $cat = get_query_var('cat');
    $yourcat = get_category ($cat);
    echo ''. $yourcat->slug;
}

if (is_tag()) {
    $term = get_term_by ( 'slug' , get_query_var( 'tag' ), 'post_tag' );
    echo $term->slug;
}

 ?>.jpg" class="image_genres" title="Жанр <?php single_cat_title(); ?>" alt="Жанр <?php single_cat_title(); ?>">

</figure>

2. Когда изображения существуют только для отдельных категорий

Если надо проверить изображение на его наличие и только в случае существования файла вывести это изображение, то код будет несколько сложнее. На основании проверки наличия файла на сервере PHP код будет таким:

<?php

$title_attribute = single_cat_title( 'Жанр ', '', false );

if (is_category()) {

    $cat = get_query_var('cat');
    $yourcat = get_category ($cat);

    $img_url = get_bloginfo('url'). '/images/genres/'. $yourcat->slug. '_s.jpg';

    $f=$_SERVER['DOCUMENT_ROOT']."/images/genres/". $yourcat->slug."_s.jpg";
    if (file_exists($f)) {

        echo '<figure class="archive-description-img">';
        echo '<img src="'.$img_url.'" class="image_genres" title="'.$title_attribute.'"  alt="'.$title_attribute.'">';
        echo '</figure>';
    }
}

elseif (is_tag()) {

    $term = get_term_by ( 'slug' , get_query_var( 'tag' ), 'post_tag' );

    $img_url = get_bloginfo('url'). '/images/genres/'. $term->slug. '_s.jpg';

    $f=$_SERVER['DOCUMENT_ROOT']."/images/genres/". $term->slug."_s.jpg";
    if (file_exists($f)) {

        echo '<figure class="archive-description-img">';
        echo '<img src="'.$img_url.'" class="image_genres" title="'.$title_attribute.'"  alt="'.$title_attribute.'">';
        echo '</figure>';
    }
}

?>

Работает он следующим образом. Проверяет наличие файла на сервере отдельно для категорий и отдельно для тегов. Если файл имеется, то выводит его, если файла нет, то ничего не выводится. И чтобы не нарушать стиль сайта, в сравнении с первым кодом, дополнительные html элементы внесены внутрь кода.

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Вывод изображений для разделов и тегов на WordPress без плагинов"