Kategoriler
WordPress

WordPress kategorilere görsel eklemek

WordPress kategorilere eklenti ile ve eklentisi öne çıkan görsel eklemek hakkında.

Standart WordPress kurulumunda WordPress kategorilerinin isim, kalıcı bağlantısı ve açıklama kısmı var ancak görsel yani öne çıkan resim alanı yok, bunu yapmak için aşağıdaki örnek kodu kullanabilirsiniz.

add_action("init", function (){
    add_action("edit_category_form_fields", "add_image_cat");
    add_action("edited_category", "save_image");
});
function add_image_cat($tag)
{
    $category_images = get_option("category_images");
    $category_image = "";
    if (
        is_array($category_images) &&
        array_key_exists($tag->term_id, $category_images)
    ){
        $category_image = $category_images[$tag->term_id];
   }
    ?><tr><th scope="row" valign="top"><label for="auteur_revue_image">Resim</label></th><td><?php if ($category_image != ""){?><img src="<?php echo $category_image; ?>" alt=""/><?php}?><br/><input type="text" name="category_image" id="category_image" value="<?php echo $category_image; ?>" size="85"/><br /><span>Bu alan kategoriye bir resim eklemenizi sağlar. Minimum 256X256 kare görseli WordPress ortam sekmesinden yükleyin ve görselin URL buraya yapıştırın.</span></td></tr><?php
}

function save_image($term_id)
{
    if (isset($_POST["category_image"])){
        $category_images = get_option("category_images");
        $category_images[$term_id] = $_POST["category_image"];
        update_option("category_images", $category_images);
   }
}

function kategori_resim()
{
    $category_images = get_option("category_images");
    $category_image = "";
    $category_image = $category_images[get_query_var("cat")];
    if (
        is_category() ||
        (is_array($category_images) &&
            array_key_exists(get_query_var("cat"), $category_images))
    ):
        return $category_image;
    else:
        return "https://wolkanca.com/logo.png";
    endif;
}

add_filter(
    "get_the_archive_description",
    function ($description){
        if (is_category()){
            $category_images = get_option("category_images");
            $category_image = "";
            $category_title = trim(wp_title(false, false));
            $category_id = get_cat_ID($category_title);
            if (
                is_array($category_images) &&
                array_key_exists(get_query_var("cat"), $category_images)
            ):
                return '<img alt="' .
                    $category_title .
                    '" src="' .
                    $category_image .
                    '" width="256" height="256" />' .
                    $description;
            else:
                return $description;
            endif;
       }
   },
    10,
    1
);

Bazı temalarda bu özellik geliyor ama çoğu temada bu yok ayrıca bunu eklenti ile de yapmanız mümkün, Yoast ve benzeri SEO eklentileri de bunu yapabilir.

Kod bu, çok gelişmiş değil ve basit. Bu kodu temanınsın funstions.php dosyasına ekledikten sonra kategori ayarlarında kategoriyi düzenleyip resmin URL’ini ilgili alana yapıştırmanız yeterli.

Eklenti olarak aynı işi yapan bu eklentiler güzel çalışıyor: wordpress.org/plugins/wp-custom-taxonomy-image/ ve wordpress.org/plugins/category-featured-image/. Daha fazla eklenti için Google’da category featured image wordpress plugin şeklinde bir arama yapabilirsiniz: wordpress.org/plugins/tags/category-image/