developer_modeتطوير الويب rss_feedووردبريس

اضافة صور بارزة للمنشورات الموجودة في ووردبريس

عينة من الكود لاضافة صور بارزة عشوائية من مكتبة الوسائط لكل منشور موجود مسبقاً في قاعدة البيانات.

هدف هذا الكود

كنت أعمل على موقع ووردبريس. أردت عرض المنشورات مع صور بازرة أو مصغرة لأغراض التجريب والاختبار.

لكن ليس لدي وقت أن أقوم باضافة صورة بارزة لكل منشور موجود، فقمت باضافة هذه العينة من الكود لإضافة صور بارزة عشوائية من مكتبة الوسائط لكل منشور.

طريقة اضافة هذا الكود

  1. اضف هذه العينة من الكود إلى ملف functions.php
  2. قم بفتح أي صفحة من الموقع.
  3. قم بحذف هذا الكود من ملف functions.php

انتباه: هدف هذا الكود أن يعمل على بيئة تجريبية ليساعدك على القيام بالتطوير بسرعة.

انتباه: تأكد من حذف هذا الكود بعد تشغيله للمرة الأولى. هذا الكود يجب أن يشغل مرة واحدة في الموقع

function learn_with_naw_set_random_thumbnail_for_existing_posts()
{
  $args = [
    'post_type' => 'post',
    'posts_per_page' => -1,
    'post_status' => 'publish',
    'meta_query' => [
      [
        'key' => '_thumbnail_id',
        'compare' => 'NOT EXISTS',
      ],
    ],
  ];

  $query = new WP_Query($args);

  if ($query->have_posts()) {
    while ($query->have_posts()) {
      $query->the_post();
      $attachments = get_posts([
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'posts_per_page' => -1,
        'post_status' => 'inherit',
        'orderby' => 'rand',
      ]);

      if ($attachments) {
        $attachment = array_shift($attachments);
        set_post_thumbnail(get_the_ID(), $attachment->ID);
      }
    }
  }

  wp_reset_postdata();
}

// Hook this function to run on Init
add_action('init', 'learn_with_naw_set_random_thumbnail_for_existing_posts');
PHP