কাস্টম পোস্ট সংযুক্তি আপলোডের জন্য একটি পৃথক আপলোড ফোল্ডার ব্যবহার করুন


9

সুতরাং, আমি ডিফল্ট হিসাবে দুটি পৃথক আপলোড ফোল্ডার ব্যবহার করার উপায় অনুসন্ধান করার চেষ্টা করছি wp-content/uploads সাধারণ মিডিয়া আপলোডগুলির জন্য এবং অন্য wp-content/customএকটি নির্দিষ্ট ধরণের সংযুক্তিগুলির জন্য বলি (পিডিএফ ফাইলগুলি একটি নির্দিষ্ট পোস্ট_ টাইপের সাথে সংযুক্ত)।

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

আমি যে কোডটি কাজ করেছিলাম তা আপনাকে প্রদর্শন করতে আমি কিছুটা বিব্রত বোধ করি, কারণ এটি লম্পট, তবে এখানে এটি রয়েছে:

    function custom_post_type_metabox_save_function($post_id) {

    global $post;

    // Verify auto-save, nonces, permissions and so on then:

    update_post_meta($post_id, "meta_key1", $_POST["value1"]);
    update_post_meta($post_id, "meta_key2", $_POST["value2"]);

// this is where it gets uply. I change the 'upload_path' to my desired one for this post type
    update_option('upload_path','wp-content/custom-upload-dir');

// then upload the file to it
wp_upload_bits($_FILES["pdfexame"]["name"], null, file_get_contents($_FILES["pdfexame"]["tmp_name"]));

// and then change it back to default... :$
    update_option('upload_path','');

}
add_action('save_post','custom_post_type_metabox_save_function');

আমি সত্যিই বরং এই পোস্ট ফর্ম্যাটের জন্য একটি এবং অন্যটির জন্য অন্য দুটি ফাইল আপলোড করব। এটি সম্পর্কে আরও পরিষ্কার উপায় আছে?

উত্তর:


4

আমি ডাব্লুপি আপলোড সিস্টেমটিকে পুরোপুরি বাইপাস করে সমাধানের কাজ শেষ করেছি, সুতরাং এখন এটি কেমন দেখাচ্ছে:

/*
 * Define new upload paths
 */

$uploadfolder =  WP_CONTENT_DIR . '/exames'; // Determine the server path to upload files
$uploadurl = content_url() . '/exames/'; // Determine the absolute url to upload files
define(RM_UPLOADDIR, $uploadfolder);
define(RM_UPLOADURL, $uploadurl);

    function custom_post_type_metabox_save_function($post_id) {

        global $post;

        // Verify auto-save, nonces, permissions and so on then:

        update_post_meta($post_id, "meta_key1", $_POST["value1"]);
        update_post_meta($post_id, "meta_key2", $_POST["value2"]);
        update_post_meta($post_id, "meta_key3", $_POST["value3"]);

    $destination =  RM_UPLOADDIR; // Determine the path to upload files
    $filename = $_FILES["file"]["name"]; // Get the uploaded file name

    // This separates the extension from the rest of the file name
    $filename = strtolower($filename) ; 
    $exts = split("[/\\.]", $filename) ; 
    $n = count($exts)-1; 
    $exts = $exts[$n];

    $newname = time() . rand(); // Create a new name
    $filepath = $destination . '/' . $newname.'.'.$exts; // Get the complete file path
    $filename = $newname.'.'.$exts; // Get the new name with the extension

    // Now, if the upload was successful we save a post meta with the filename, if not, save nothing
    if (move_uploaded_file($_FILES["pdfexame"]["tmp_name"], $filepath)) {
            update_post_meta($post_id, "rm_martins_exame_url", $filename); 
        }

  }
    add_action('save_post','custom_post_type_metabox_save_function');

আমার আগে যা ছিল তা তার চেয়ে কম কুৎসিত, তবে এটি যদি upload_dirফিল্টারটি ব্যবহার করে করা যায় তবে আরও ভাল ।

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