طريقة تعيين الصورة البارزة تلقائيا لمقالات ووردبريس

وضع صورة بارزة تلقائيا في ووردبريس

موضوعنا اليوم هو حول طريقة تعيين صورة بارزة تلقائيا للمقالات في ووردبريس, وذلك ردا على سؤال أحد زوار الموقع في تدوينة فرض صورة بارزة الذي هو التالي:

كنت استخدم قالب Goodnews والصور المصغرة تظهر في الموضوع تلقائيا طبعا ريحني من استخدام الصورة البارزة الان نصبت قالب صحيفة ولا يدعم timthumb يعني احتاج تحديث 1000 مقال ووضع صور بارزة وهذا ياخذ وقت وجهد بحثت عن حلول ولم أجد هل لديك حل لهذه المشكلة.

في هذه الحالة وضع صور بارزة لكل المقالات يدويا قد يكون أمر مرهقا جدا… لكن لحسن الحظ في ووردبريس دائما هناك حلول سهلمة لكل شيء تقريبا.

هناك عدة طرق لحل هذه المشكلة لكن في هذه التدوينة سأتطرق لشرح إثنين منهم:

اقرأ أيضا: إضافة ووردبريس لإجبار المحررين على تعين صورة بارزة

وضع صورة بارزة تلقائيا بواسطة كود.

فقط عليك وضع هذا الكود في ملف functions.php أو لإضافتك المخصصة

function sb_auto_post_thumbnail() { global $post; $already_has_thumb = has_post_thumbnail($post->ID); if (!$already_has_thumb) { $attached_image = get_children( array( 'numberposts' => '1', 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', ) ); if ($attached_image) { foreach ($attached_image as $attachment_id => $attachment) { set_post_thumbnail($post->ID, $attachment_id); } } else { set_post_thumbnail($post->ID, '1638'); } } } add_action('save_post', 'sb_auto_post_thumbnail');
Code language: PHP (php)

بعدها قم بإستبدالرقم 1638 (السطر 20) بالرقم المعرف (ID) الخاص بالصورة التي تريد أن تكون كصورة بارزة إفتراضية للمقالات التي لا تحتوي على أي صورة.

طريقة معرفة ID الصور

لمعرفة معرفة ID أي صورة فقط عليك الدخول إلى مكتبة الوسائط بعدها النقر على الصورة التي تريد أخد رقمها المعرف (ID) و سيظهر لك هذا الأخير في آخر الرابط كما هو واضح في الصورة.

اقرأ أيضا: كيفية إضافة حقوق النسخ لووردبريس

وضع صورة بارزة تلقائيا في ووردبريس

شرح الكود

أولا نقوم بالتحقق من وجود أو عدم وجود صورة بارزة من خلال الدالة has_post_thumbnail($post->ID) و تخزين النتيجة في المتغير $already_has_thumb

$already_has_thumb = has_post_thumbnail($post->ID);
Code language: PHP (php)

في حالة عدم وجود صورة بارزة نقوم بإستخراج أول صورة موجودة في المقال بواسطة الدالة get_children()

if ( !$already_has_thumb) { $attached_image = get_children( array( 'numberposts' => '1', 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image', ) );
Code language: PHP (php)

بعدها نقوم بتعيين الصورة المستخرة كصورة بارزة للمقالة.

اقرأ أيضا: عرض مقالات ذات صلة دون إضافة في ووردبريس

if ($attached_image) { foreach ($attached_image as $attachment_id => $attachment) { set_post_thumbnail($post->ID, $attachment_id); } }
Code language: PHP (php)

و في حالة عدم عدم توفر أي شرط, أي عدم وجود لا صورة بارزة و لا أي صورة داخل المقال نقوم بإظهار الصورة الإفتراضية.

// else { set_post_thumbnail($post->ID, '1638'); }
Code language: PHP (php)

و في الأخير نقوم بإضافة الدالة التي قمنا بإنشائها إلى الخطافات save_post المناسبة بواسطة الدالة add_action.

add_action('save_post', 'sb_auto_post_thumbnail');
Code language: PHP (php)

وضع صورة بارزة تلقائيا بواسطة إضافة.

إذا لم تكن لديك الخبرة الكافية للتعامل مع الأكواد, بإمكانك استعمال إضافة Automatically set 1st image as featured
هذه الإضافة تقوم بنفس عمل الكود السابق لكنها لا تتوفر على خاصية الصورة الإفتراضية، أحسن ما فيها هو أنها لا تحتاج لأي تعديل أو إعداد.

اقرأ أيضا: إضافة ووردبريس لإنشاء قوالب فرعية بسهولة

في الأخير أقترح عليك تنصيب إضافة Regenerate Thumbnails التي تقوم بإعادة توليد الصور المصغّرة لكي تتوافق مع القياسات المعتمد في القالب المفعّل.

close

قم بالتسجيل على قائمتي البريدية لكي تكون من الأوائل في الحصول على تدوينات وشروحات حصرية

أنا لا أرسل أبدا البريد المزعج! اقرأ سياسة الخصوصية لمزيد من المعلومات.

20 تعليق

  1. لاشك أنّ البعض يرغب في تغيير قالبه الخاص ولكن قد يفقد الصورة البارزة ولكن بفضل الله ثم بفضل هذه الأكواد التي وضعتها ستحل الكثير من الإشكالات، اشكرك أخي سعيد على هذا الموضوع الهام والذي ينتظره الكثير .

    تحياتي لك.

    1. السلام عليكم,
      فقط عليك الدخول إلى مكتبة الوسائط بعدها النقر على الصورة التي تريد أخد رقمها المعرف (ID)و سيظهر لك هذا الأخير في آخر الرابط كما هو واضح في الصورة.

  2. أخ سعيد الطريقة لاتنفع مع القالب صحيفه و بعض القوالب المدفوعة لان تحتاج سكربت او صنع ملف timthumb داخل الثيم نفسه وصنع مجلد كاش خاص فيه وتعديل عل اربع ملفات وهي [code lang=”php” inline=true]functions.php[/code] و index و archive و style ووضع كود استدعاء للمصغرات بداخلها
    تابع هذا الشرح وارجو اضافته ضمن المقال

    1. السلام عليكم أخي,

      الشرح الذي وضعته قديم جدا, كان يستعمل قبل ان يتم إضافة الصور المصغرة بشكل إفتراضي في ووردبريس, حاليا و منذ النسخة 2.9 ووردبريس أصبح يدعم الصور المصغرة إفتراضيا.

      أما بالنسبة لتطبيق TimThumb فقد أعلن مطوره التخلي عنه مأخرا و أوصى بعدم إستعماله… يمكنك قراءة المنشور من هنا

      أنصحك باللجوء إلى الدعم الفني لقالب صحيفة لأنه قالب مدفوع و يتوفر على دعم خاص من طرف صاحبه.

  3. شكرا سعيد على هذه المعلومات
    فقدقمت بشراء ثيم قود نيوز الاصدار 5+ بصراحة يمكنك الاستغناء عن اضافات كثيرة منها الجت باك الثيم يدعم المصغرات
    والتحكم به سلس جدا والتحكم بالصور ومقاساتها دون اضافات ولا تعديل على ملفات يمكنك زيارة موقعي.

  4. شكرا لك استاذ سعيد
    بس ياريت لو توصح لنا في أي مكان بالضبط نضع الكود بعد أي امر أو سطر في ملف [code lang=”php” inline=true]functions.php[/code]

  5. بارك الله فيك .. شرحت واوفيت
    من فضلك ( طالما دخلنا في الاكواد )
    القائمة الافقية اعلى الموقع .. التي تعرض اقسام الموقع او التصنيفات .. ايا كان اسمها
    تعرض الاقسام حسب الترتيب الابجدي … كيف استطيع ان اقوم بالترتيب في هذه القائمة حسب ما اريد ؟؟؟
    واشكرك مقدما

    1. يمكنك التحكم في طريقة ظهور القوائم من خلال لوحة تحكم ووردبريس, و ذلك بالولوج إلى المظهر=> القوائم.

      بالتوفيق

  6. وفقك الله استاذ سعيد والله استفدنا منك جدا
    عندك المشاركة في توتير او فيسبوك ايضا لا يظهر الكود

  7. اخي الكريم شكرا على الطريقة لكنها لا تنفع مع تخصص موقعي
    اخويه انا املك موقع لعرض الصور فانا محتاج لطريقة تجعل اول صوره فى الموضوع
    كصوره بارزه هل هناك من طريقة او اضافه لذلك؟؟

    1. الكود يعمل بشكل جيد، كذلك في آخر التدوينة قمت بذكر إضافة تقوم بنفس عمل الكود يمكنك استعمالها في حالة عدم معرفتك بأمور تطوير ووردبريس والتعامل مع الأكواد.

اترك تعليقًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *