comez.dev
tr
~/article/wordpresste-one-cikan-gorseli-olmayan-yazilara-otomatik-gorsel-atama-1-2Tüm yazılar

makale3 dk okuma702 görüntülenme

WordPress'te Öne Çıkan Görseli Olmayan Yazılara Otomatik Görsel Atama

Bu sayfada (4)
  1. WordPress'te Öne Çıkan Görseli Olmayan Yazılara Otomatik Görsel Atama
  2. 1. Yeni Yazılar İçin Otomatik Öne Çıkan Görsel
  3. 2. Eski Yazılara Toplu Uygulama
  4. Nasıl Kullanılır?

WordPress'te Öne Çıkan Görseli Olmayan Yazılara Otomatik Görsel Atama

WordPress sitenizde yüzlerce içerik olabilir ve hepsi için manuel olarak öne çıkan görsel eklemek oldukça zaman alıcı bir iştir. Bu yazıda, öne çıkan görseli olmayan içeriklere otomatik olarak varsayılan bir görsel atanmasını sağlayacak bir fonksiyon paylaşacağım.

1. Yeni Yazılar İçin Otomatik Öne Çıkan Görsel

Aşağıdaki kod, sitenizde yeni oluşturulan içeriklere öne çıkan görsel atanmadıysa, otomatik olarak belirlediğiniz varsayılan bir görseli indirip ortam kütüphanesine yükler ve öne çıkan görsel olarak atar.
<?php
function auto_set_featured_image_for_new($post_id) {
    if (wp_is_post_revision($post_id) || has_post_thumbnail($post_id)) {
        return;
    }

    $default_image_url = 'https://example.com/default.jpg'; // ← URL'yi buraya yaz

    $upload_dir = wp_upload_dir();
    $image_data = file_get_contents($default_image_url);
    if ($image_data === false) return;

    $filename = basename($default_image_url);
    $file = $upload_dir['path'] . '/' . $filename;
    file_put_contents($file, $image_data);

    $wp_filetype = wp_check_filetype($filename, null);
    $attachment = array(
        'post_mime_type' => $wp_filetype['type'],
        'post_title'     => sanitize_file_name($filename),
        'post_content'   => '',
        'post_status'    => 'inherit'
    );

    $attach_id = wp_insert_attachment($attachment, $file, $post_id);
    require_once(ABSPATH . 'wp-admin/includes/image.php');
    $attach_data = wp_generate_attachment_metadata($attach_id, $file);
    wp_update_attachment_metadata($attach_id, $attach_data);

    set_post_thumbnail($post_id, $attach_id);
}
add_action('save_post', 'auto_set_featured_image_for_new');
?>
  

2. Eski Yazılara Toplu Uygulama

Yüzlerce eski yazınızda öne çıkan görsel yoksa, aşağıdaki fonksiyonu kullanarak tek seferde hepsine varsayılan görsel atayabilirsiniz.
<?php
function auto_set_featured_image_for_existing_posts() {
    $default_image_url = 'https://example.com/default.jpg'; // ← URL'yi buraya yaz

    $args = array(
        'post_type'      => 'post',
        'posts_per_page' => -1,
        'post_status'    => 'publish',
        'meta_query'     => array(
            array(
                'key'     => '_thumbnail_id',
                'compare' => 'NOT EXISTS'
            )
        )
    );

    $posts = get_posts($args);

    foreach ($posts as $post) {
        $upload_dir = wp_upload_dir();
        $image_data = file_get_contents($default_image_url);
        if ($image_data === false) continue;

        $filename = basename($default_image_url);
        $file = $upload_dir['path'] . '/' . $filename;
        file_put_contents($file, $image_data);

        $wp_filetype = wp_check_filetype($filename, null);
        $attachment = array(
            'post_mime_type' => $wp_filetype['type'],
            'post_title'     => sanitize_file_name($filename),
            'post_content'   => '',
            'post_status'    => 'inherit'
        );

        $attach_id = wp_insert_attachment($attachment, $file, $post->ID);
        require_once(ABSPATH . 'wp-admin/includes/image.php');
        $attach_data = wp_generate_attachment_metadata($attach_id, $file);
        wp_update_attachment_metadata($attach_id, $attach_data);

        set_post_thumbnail($post->ID, $attach_id);
    }

    echo count($posts) . " yazıya öne çıkan görsel eklendi.";
}
// Bu fonksiyonu sadece bir kere çalıştırmak için aşağıdaki satırı geçici olarak aktif et:
// auto_set_featured_image_for_existing_posts();
?>
  

Nasıl Kullanılır?

  • Yukarıdaki tüm kodları temanızın functions.php dosyasına ekleyin.
  • https://example.com/default.jpg kısmını kendi varsayılan görsel adresiniz ile değiştirin.
  • Eski yazılar için olan fonksiyonu sadece bir kere çalıştırmak istiyorsanız, son satırdaki yorumu geçici olarak kaldırın ve sitenizi bir kez ziyaret edin. Sonrasında o satırı tekrar yoruma alın.
Bu yöntemle WordPress sitenizde hem yeni hem de eski yazılarınızda görsel bütünlüğünü sağlayabilir, ziyaretçilere daha profesyonel bir görünüm sunabilirsiniz.
Etiketler:

#functions.php#öne çıkan görsel#otomatik görsel ekleme#varsayılan resim#wordpress

güncellendi
Yorumlar0

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yaz

İlgili

Benzer bir iş üzerinde mi çalışıyorsunuz?
Mimariyi incelemekten teslimata kadar yardımcı olmaktan memnuniyet duyarım.

iletişim