ডাব্লুপি মাল্টিসাইটে কাস্টম পোস্ট ধরণের পিডিএফগুলির জন্য নির্দিষ্ট আপলোড ফোল্ডার


14

আমাকে কেবল পিডিএফ-এর জন্য "ডকুমেন্ট" নামক একটি কাস্টম-পোস্ট ধরণের জন্য একটি নির্দিষ্ট ফোল্ডারে আপলোডগুলি ফিল্টার করতে হবে।

এখনও অবধি আমার কাছে রয়েছে:

function custom_upload_directory( $args ) {
$base_directory = '/home/xxx/my_uploadfolder';
$base_url = 'http://xxxx/wp-content/uploads/my_uploadfolder';

$id = $_REQUEST['post_id'];
$parent = get_post( $id )->post_parent;
// Check the post-type of the current post

if( "document" == get_post_type( $id ) || "document" == get_post_type( $parent ) ) {
    $args['path'] = $base_directory;
    $args['url']  = $base_url;
    $args['basedir'] = $base_directory;
    $args['baseurl'] = $base_url;

}

return $args;
}
add_filter( 'upload_dir', 'custom_upload_directory' );

এটি কাজ করে তবে কিছু সমস্যা সহ:: যে কোনও ধরণের ফাইল মাই_আপলোডফোল্ডারে পুনঃনির্দেশিত হয়। এছাড়াও, আমি ডাব্লুপি অ্যাডমিন থেকে এই ফাইলগুলি একবার মুছতে পারি না। কেউ সাহায্য করতে পারেন?

উত্তর:


2

আপনি ব্যবহার বিবেচনা করতে পারেন

if(get_post_mime_type($id) == 'application/pdf'){
   ...
}

পিডিএফ ফাইলগুলি পরীক্ষা করার জন্য।

http://codex.wordpress.org/Function_Reference/get_post_mime_type

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

http://php.net/manual/en/function.unlink.php


2

এখানে আপনার সমস্যার কারণ হ'ল আপনি সর্বজনীন ফিল্টার প্রয়োগ করছেন upload_dir। এটি না করে upload_dirপ্রথমে পরীক্ষা করার পরে শর্তযুক্ত ফিল্টারটি ['mime-type']ব্যবহার করুন application/pdf। আপনাকে wp_handle_uploadঅ্যাকশন হুক এ আপলোড প্রক্রিয়াটি আটকাতে হবে এবং সেখানে আপলোড ফোল্ডারটি পরিবর্তন করতে হবে। আপনি যা পোস্ট করেছেন তা সঠিক দিকে যাচ্ছে, তবে আপনার আগত $_POSTডেটার সাথে কাজ করা এবং সেখানে ['mime-type']আপলোড প্রক্রিয়া চলাকালীন ওয়ার্ডপ্রেস সংরক্ষণ করে এমন ফাইলগুলি আপলোড করার জন্য সেখানে ফিল্টার প্রয়োগ করা দরকার ।

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