আমি কীভাবে বাল্ক আপলোড করতে এবং একই সাথে প্রত্যেকের জন্য পোস্ট তৈরি করতে পারি?


10

আমি জানি কোনও বিদ্যমান পোস্টে কীভাবে একাধিক চিত্র আপলোড করা যায় তবে এটি একটি ভিন্ন দৃশ্য। এটি সম্পদের বৃহত্তর ক্যাটালগের জন্য, প্রতিটি কাস্টম পোস্ট-টাইপ পোস্টের সাথে একটি চিত্রের সম্পদ উপস্থাপন করে (এইভাবে প্রতিটি পোস্টের জন্য একটি চিত্রকে "বৈশিষ্ট্যযুক্ত চিত্র" হিসাবে অর্পণ করা হয়)।

পুরো সিস্টেমটি এক-সময়ে-সময়ে সম্পদ তৈরির জন্য দুর্দান্ত কাজ করে তবে খুব বেশি সময়সাপেক্ষ। আমার একবারে "ব্যাচ" একাধিক চিত্র আপলোড করতে সক্ষম হওয়া দরকার, তারপরে প্রতিটি চিত্রের জন্য একটি নতুন পোস্ট তৈরি করা হবে, তারপরে চিত্রটিকে "বৈশিষ্ট্যযুক্ত চিত্র" হিসাবে নতুন পোস্টে সংযুক্ত করুন।

প্রতিটি পোস্টের জন্য কোনও পাঠ্য সামগ্রী প্রবেশ করবে না - কেবলমাত্র কিছু মেটাডেটা এবং কাস্টম টেকনোমির অ্যাসাইনমেন্ট, সুতরাং এই ব্যাচ তৈরির প্রক্রিয়া চলাকালীন মেটাডেটা এবং শ্রেণীবিন্যাসের ব্যাচ-নির্ধারণ করা সম্ভব হওয়া উচিত।

আমি এক্সএমএল-আরপিসি পোস্ট তৈরির (যা সাধারণত চিত্র আপলোড / অ্যাসাইনমেন্ট হ্যান্ডেল করে না) সার্ভার ডিরেক্টরি থেকে ফাইলগুলি মিডিয়া লাইব্রেরিতে টানায় (যা পোস্ট তৈরির বিষয়টি কভার করে না) এবং jquery একাধিক ফাইল থেকে সমাধানগুলি অনুসন্ধান করেছি আপলোডকারীরা (এটি মূলত কেবল একটি ডিরেক্টরিতে ফাইল ডাম্প করে)।

আমি তুলনামূলকভাবে পিএইচপি-তে পারদর্শী, প্লাগইন এবং থিম তৈরি করেছি, তবে এই প্রক্রিয়াটি কীভাবে পরিচালনা করতে হবে তা সম্পর্কে আমি স্তম্ভিত, কারণ এটি কিছু অস্থায়ী ক্ষমতাতে সার্ভারে ফাইলগুলি পাওয়ার প্রথম ধাপের প্রয়োজন, তারপরে ফাইলগুলির ভিত্তিতে পোস্ট তৈরি করা আপলোড করা হয়েছে এবং পুরো ব্যাচে কিছু সনাক্তকারী মেটাডেটা বরাদ্দ করা হয়েছে।

আমি আশা করছি এটি একটি কাস্টম অ্যাডমিন প্যানেলে করা সম্ভব, তবে যদি আমাকে ডাব্লুপি-অ্যাডমিনের বাইরে এটি করতে হয় তবে তা খুব ভাল ...

ধারনা?


আপনি কি এর কোনও উত্তর খুঁজে পেয়েছেন? এটি আমার জন্য উপযুক্ত হবে ...

আমি করেছি ... তবে প্রকল্পটি পুরো ফ্রেমওয়ার্ক প্লাগইনে রূপান্তরিত হয়েছে। এটি কোনও নির্দিষ্ট সংক্ষিপ্ত উত্তর নয় - আমাকে একাধিক ফাংশন এবং হুকগুলির প্রবাহটি নথিভুক্ত করতে হবে যা প্রত্যেকে একত্রে এটি সম্পাদন করে।
সোম্যাটিক

1
সংক্ষেপে, আমি আসলে একটি দ্বি-পদক্ষেপ প্রক্রিয়া করেছি, সম্পাদকীয় কারণে হিসাবে এটি ব্যবহারকারীর দ্বারা আপলোড করা সমস্ত কিছুর জন্য প্রকৃতপক্ষে পোস্টগুলি স্প্যান করার কোনও মানে হয় না। পরিবর্তে, ব্যবহারকারী একক "ব্যাচ" পোস্টে সমস্ত চিত্র আপলোড করে সেই একক পোস্টে সংযুক্তি হিসাবে । তারপরে, ব্যাচটি পর্যালোচনা করা হবে এবং প্রতিটি সংযুক্তি গ্রহণ / প্রত্যাখ্যান করা হবে - এবং একবার "ব্যাচ" পোস্ট প্রকাশিত হওয়ার পরে, একটি কাস্টম সেভ রুটিন প্রতিটি স্বীকৃত সংযুক্তি গ্রহণ করে এবং কেবলমাত্র একক সংযুক্তি সহ একটি পোস্ট তৈরি করতে তার বৈশিষ্ট্যযুক্ত হিসাবে wp_insert_post () ব্যবহার করে চিত্র।
সোম্যাটিক


আপনি কীভাবে মেটা ডেটা যুক্ত করছেন, কীভাবে চিত্রগুলি ডেটার সাথে সম্পর্কিত?
উইক

উত্তর:


5

এই প্লাগইনটি রয়েছে: স্বয়ংক্রিয় বৈশিষ্ট্যযুক্ত চিত্র পোস্ট প্লাগইন

প্লাগইন পৃষ্ঠা থেকে:

স্বয়ংক্রিয় বৈশিষ্ট্যযুক্ত চিত্র পোস্টগুলি প্রতিবার একটি ছবি আপলোড হওয়ার সাথে সাথে একটি বৈশিষ্ট্যযুক্ত চিত্র সহ একটি নতুন পোস্ট তৈরি করে। প্লাগইন সেটিংস পৃষ্ঠার মাধ্যমে আপনি চিত্রটি প্রকাশ করতে এবং আপনার বিদ্যমান বিদ্যমান কাস্টম পোস্ট ধরণের এবং / অথবা পোস্ট ফর্ম্যাটগুলির একটিতে নিজেকে নির্ধারণ করতে সেট করতে পারেন।

মূলত, আপলোড করা প্রতিটি চিত্র একটি পোস্ট উত্পন্ন করে (আপনার নির্বাচিত পোস্ট-টাইপের) এবং সেই পোস্টের বৈশিষ্ট্যযুক্ত চিত্র হিসাবে সেট করা থাকে।

আমি এটি আমার লোকাল মেশিনে ইনস্টল করেছি। সেটিংস পৃষ্ঠাটি দেখতে দেখতে দেখতে কাস্টম পোস্টের ধরণগুলি সহ আপনি কোন পোস্ট প্রকারটি বেছে নিতে পারবেন এবং আপনি ফটো আপলোডগুলি কীভাবে পোস্ট করতে চান এবং কী প্রকাশের স্থিতি চান তা নির্বাচন করতে দেয়।

প্লাগইন এর স্ক্রিনশট

প্লাগইনটিকে অনুশীলনে রাখার জন্য - আপনার নির্বাচিত পোস্টের ধরণে নেভিগেট করুন, একটি নতুন পোস্ট খুলুন এবং মিডিয়া আপলোড করুন।

ফটো আপলোড করতে, কেবল "আপলোড" কথোপকথন বাক্সে একাধিক ফটো হাইলাইট করুন। আমি এখানে 8 টি ছবি হাইলাইট করছি, তবে ওয়ার্ডপ্রেস চিত্র আপলোডারের মধ্যে সীমাবদ্ধতা না থাকলে আমি এটি 80 বা 800 না হতে পারে তার কোনও কারণ দেখছি না।

এখানে চিত্র বর্ণনা লিখুন

পোস্টের শিরোনামগুলি চিত্র ফাইলের নাম দ্বারা সেট করা হয়। আপনার এটির সাথে কাজ করতে সক্ষম হওয়া উচিত এবং তাদের সাথে আপনার থিমটিতে কল করা উচিতthe_title()

আমি স্থানীয়ভাবে পরীক্ষা করেছি এবং এটি ওয়ার্ডপ্রেস 3.6 এ কাজ করছে।

আমি নিশ্চিত যে এটি সম্পাদন করার আরও শক্তিশালী বা নমনীয় উপায় রয়েছে তবে এই ক্ষেত্রে, প্লাগইনটি মেটা-ডেটা বরাদ্দ ব্যতীত আপনি যা যা বলছেন ঠিক তা-ই করছে বলে মনে হচ্ছে। হতে পারে যে অন্য কেউ এই অংশটি সামান্য বিট করতে পারেন।

আপনার যদি গতিশীলভাবে উত্পন্ন পোস্ট সামগ্রী প্রয়োজন হয় তবে আপনি কমপক্ষে প্লাগইন দিয়ে শুরু করতে পারেন এবং সেখান থেকে পুনরাবৃত্তি করতে পারেন। একটি ভেবেছিল পোস্টগুলি কীভাবে প্রদর্শিত হয় তা নির্ধারণের জন্য পোস্ট-ফর্ম্যাট বা পৃষ্ঠা-টেম্পলেট ব্যবহার করতে হবে।

দ্রষ্টব্য: নিশ্চিত করুন যে আপনার সমস্ত image_sizeফাংশন.এফপি তে সেট আছে। আমি 10,000 টি ফটোগুলি পূর্বাবস্থায় ফিরিয়ে আনতে / মুছতে বা ঘৃণা করব বা কেবলমাত্র চিত্রের আকারটি ভুলে গেছি বা পরিবর্তিত করেছি বলেই একটি দীর্ঘ দীর্ঘ "থাম্বনেইলগুলি পুনরায় তৈরি করুন" চালানো হবে!


আপনি ডাউনওয়েটিং করার সময় আপনার মন্তব্য করা উচিত - এটি সাইটের মানের উন্নতিতে আরও বেশি সহায়ক হবে।
সময়সূচী

5

এই স্ক্রিপ্টটি ধারণার প্রমাণ (পরীক্ষিত এবং কাজ করা), এটি কোনও প্লাগইন নয় এবং এটি হ্যাক করা বোঝায়, এটি কয়েকটি জিনিস ধরে নেয়:

  1. এটি wp_insert_postএমনটি ব্যবহার করে যাতে এটি পরামর্শ দেওয়া হয় যে আপনি এটি কোনও প্রশাসক হুকের মধ্যে আবদ্ধ করবেন না, তাই এটি একবার চালান!
  2. চিত্রগুলি অবশ্যই wp-content\uploadsফোল্ডারে থাকতে হবে, এটি পরিবর্তনের জন্য আরও হুপের প্রয়োজন হবে। উদাহরণস্বরূপ \imagesআপলোড ফোল্ডারে কাস্টম ফোল্ডার ব্যবহার করা হয় , আপনি এই অংশটি পরিবর্তন করতে পারেন।
  3. এটি কোনও ত্রুটি পরীক্ষা করে না, আমি কেবল এটি 20 টি চিত্র সহ একটি ফোল্ডারে পরীক্ষা করেছি যাতে ফলাফলগুলি ভিন্ন হতে পারে :)

নীচের কোডটি wp-content\uploads\imagesফোল্ডারটির মাধ্যমে পুনরাবৃত্তি হবে এবং এটির সাথে যুক্ত হওয়া ইমেজের নামের উপর ভিত্তি করে একটি পোস্ট শিরোনাম তৈরি করবে। আপনি সম্ভবত এটি আরও ভাল কিছুতে পরিবর্তন করতে চান বা আপনার থাকা অন্যান্য ডেটা ব্যবহার করে মেটা ডেটা প্রবেশ করতে চান (সম্ভবত এক্সিফ)।

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 );
    }   
}

কয়েক হাজার চিত্রেরও বেশি কোনও কিছুর জন্য আপনার সম্ভবত ব্যবহার করা আরও সহজ হবে:


এটি পুনরায় আকারযুক্ত চিত্রগুলি পুনরায় আপলোড / চিত্র ফোল্ডারে যুক্ত করতে থাকে এবং এর জন্য এটি নতুন পোস্ট উত্পন্ন করে। প্রক্রিয়াটি পুনরাবৃত্ত হয়ে ওঠে তাই আমি ফাংশনটি সরিয়ে দেওয়ার আগে প্রায় 800 টি পোস্ট তৈরি হয়েছিল। উত্পন্ন নতুন আকারগুলি নিয়মিত ডব্লিউপি মিডিয়া লোকেশনে করা উচিত।
হিনা শাহ

1

"পরিষ্কারের আপলোড ফোল্ডার মিডিয়া লাইব্রেরী ডিবি গঠন" প্রশ্ন করে এর সাথে সম্পর্কিত করা যেতে পারে কিছু প্লাগইন পরামর্শ আছে - যদিও না ঠিক করছেন আপনি যা জিজ্ঞাসা। তবে সম্ভবত তথ্য দরকারী।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.