it-swarm.asia

كيف يمكنني تحميل الصور بالجملة وإنشاء مشاركات لكل واحدة في نفس الوقت؟

أعرف كيفية تحميل صور متعددة في منشور موجود ، لكن هذا سيناريو مختلف. هذا مخصص لكتالوج كبير من الأصول ، حيث يمثل كل منشور مخصص من نوع ما أصل مادة الصورة (وبالتالي يتم تعيين صورة واحدة كـ "صورة مميزة" لكل منشور).

يعمل النظام بالكامل بشكل رائع لإنشاء أصول في وقت واحد ، ولكنه يستهلك الكثير من الوقت. أحتاج إلى أن أكون قادرًا على "دفعة" تحميل صور متعددة في وقت واحد ، ثم إنشاء منشور جديد لكل صورة ، ثم إرفاق الصورة بالنشر الجديد كـ "صورة مميزة".

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

لقد بحثت عن حلول من إنشاء منشورات XML-RPC (التي لا تتعامل عادة مع تحميل/تعيين صورة) للمكونات الإضافية التي تسحب الملفات من دليل الخادم إلى مكتبة الوسائط (التي لا تغطي إنشاء المنشورات) ، وملف jquery متعددة رافعات (هذا مجرد تفريغ الملفات أساسا في الدليل).

أنا على دراية نسبية بـ php ، حيث قمت ببناء مكونات إضافية ومظاهر ، لكنني متعثر على كيفية التعامل مع هذه العملية ، لأنها تتطلب الخطوة الأولى المتمثلة في إيصال الملفات إلى الخادم في بعض السعات المؤقتة ، ثم إنشاء منشورات بناءً على الملفات تم الرفع ، وتعيين بعض بيانات التعريف التعريفية إلى المجموعة بأكملها.

آمل أن يتم ذلك في لوحة مسؤول مخصصة ، لكن إذا كان علي القيام بذلك خارج wp-admin ، فلا بأس بذلك ...

أفكار؟

10
somatic

يوجد هذا البرنامج المساعد: البرنامج المساعد التلقائي للصور المميزة

من صفحة البرنامج المساعد:

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

في الأساس ، كل صورة يتم تحميلها تنشئ منشورًا (من نوع المنشور الذي اخترته) ويتم تعيينها كصورة مميزة لتلك المشاركة.

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

Screenshot of plugin

لوضع المكوّن الإضافي موضع التطبيق - انتقل إلى نوع المنشور الذي اخترته ، افتح منشورًا جديدًا وحمِّل الوسائط.

لتحميل الصور بالجملة ، ما عليك سوى إبراز صور متعددة في مربع الحوار "تحميل". أسلط الضوء على 8 صور هنا ، لكنني لا أرى أي سبب لعدم وجود 80 أو 800 ، إلا إذا كانت هناك حدود لا أعرف عنها في برنامج تحميل الصور من وورد.

enter image description here

يتم تعيين عناوين المنشورات بواسطة أسماء ملفات الصور. يجب أن تكون قادرًا على التعامل مع ذلك والاتصال بهم في المظهر الخاص بك باستخدام the_title()

اختبرت محليا وانها تعمل في وورد 3.6.

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

إذا كنت بحاجة إلى محتوى منشور تم إنشاؤه ديناميكيًا ، فيمكنك على الأقل البدء بالمكون الإضافي والتكرار من هناك. يعتقد أحد أنه سيكون هناك استخدام تنسيقات النشر أو قوالب الصفحة لتحديد كيفية عرض المنشورات.

ملاحظة: تأكد من تعيين جميع image_sizes في وظائف. php. أكره التراجع عن/حذف 10000 صورة أو تشغيل "صورة مصغرة طويلة للغاية" لمجرد أنني نسيت أو غيرت حجم الصورة!

5
timshutes

هذا النص هو دليل على المفهوم (تم اختباره وتشغيله) ، وهو ليس مكونًا إضافيًا ويُقصد به اختراقه ، فإنه يفترض وجود بعض الأشياء:

  1. يستخدم wp_insert_post لذلك ينصح بعدم ربطه بأي رابط مسؤول ، لذا قم بتشغيله مرة واحدة فقط!
  2. يجب أن تكون الصور في مجلد wp-content\uploads ، وتغيير هذا يتطلب المزيد من الأطواق للتنقل. يستخدم المثال مجلد مخصص يسمى \images في مجلد التحميلات ، يمكنك تغيير هذا الجزء.
  3. لا يقوم بالتحقق من الأخطاء ، لقد قمت باختباره على مجلد به 20 صورة فقط ، لذا فقد تختلف النتائج :)

سيتم تكرار الكود أدناه من خلال المجلد wp-content\uploads\images وإنشاء عنوان نشر بناءً على اسم الصورة التي يتم إرفاقها به. ربما تريد تغيير هذا إلى شيء أفضل أو ممكن إدخال بيانات التعريف باستخدام بيانات أخرى لديك (ربما Exif).

function WPSE_1595_image_post() {

    // We need to use the default uploads dir
    $wp_upload_dir =  wp_upload_dir();
    // The actual folder
    $wp_upload_images = $wp_upload_dir['basedir'] . '/images';

    require_once(ABSPATH . 'wp-admin/includes/image.php');

    foreach (new DirectoryIterator($wp_upload_images) as $fileInfo) {

        if($fileInfo->isDot()) continue;

        $image_base = $fileInfo->getFilename();
        $image_name = pathinfo($fileInfo, PATHINFO_FILENAME);

        //Customize this post data as you wish
        $my_post_data = array(
            'post_title' => $image_name,
            'post_type' => 'post',
            'post_category' => array('1'),
            'post_author'   => 1,
            'post_status' => 'publish'
        );

        // We need the ID for the attachment
        $post_id = wp_insert_post($my_post_data);

        $wp_filetype = wp_check_filetype($image_base, null );

         //Customize this attachment data as you wish
        $attachment = array(
             'guid' => $wp_upload_dir['url'] . '/' . $image_name, 
             'post_mime_type' => $wp_filetype['type'],
             'post_title' => 'child-' . $image_name,
             'post_content' => '',
             'post_status' => 'inherit'
        );

        $imagefile = $wp_upload_images . '/' . $image_base;
        $attach_id = wp_insert_attachment( $attachment, $imagefile, $post_id );
        $attach_data = wp_generate_attachment_metadata( $attach_id, $imagefile );

        wp_update_attachment_metadata( $attach_id, $attach_data );
    }   
}

لأي شيء يزيد عن بضعة آلاف من الصور ، من المحتمل أن يكون لديك وقت أسهل في استخدام:

5
Wyck

يحتوي "مجلد تحميل التنظيف ، بنية مكتبة الوسائط db" Question على بعض الاقتراحات الخاصة بالبرنامج المساعد التي قد تكون ذات صلة - وإن لم يكن هذا بالضبط ما تفعله. لكن ربما تكون المعلومات مفيدة.

1
hakre