WP मल्टीसाइट में कस्टम पोस्ट प्रकार में पीडीएफ के लिए विशिष्ट अपलोड फ़ोल्डर


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

यह काम करता है, लेकिन कुछ समस्याओं के साथ:: किसी भी तरह की फ़ाइल my_uploadfolder में पुनर्निर्देशित होती है। इसके अलावा, मैं इन फ़ाइलों को एक बार WP व्यवस्थापक से हटा नहीं सकता। क्या कोई मदद कर सकता है?

जवाबों:


2

आप उपयोग करने पर विचार कर सकते हैं

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

पीडीएफ फाइलों की जांच के लिए।

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

आप wp_delete_attachment () फ़ंक्शन के पीछे कोड पर भी एक नज़र डाल सकते हैं और आप हटाए गए अनुलग्नक कार्रवाई के साथ इसमें हुक कर सकते हैं । उन फ़ाइलों को हटाने के लिए जिन्हें आप अनलिंक कर सकते हैं ()

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


2

यहाँ आपको परेशानी होने का कारण यह है कि आप एक सार्वभौमिक फ़िल्टर लागू कर रहे हैं upload_dir। ऐसा करने के बजाय, upload_dirपहले जाँच के ['mime-type']लिए एक सशर्त फ़िल्टर का उपयोग करें application/pdf। आपको wp_handle_uploadएक्शन हुक पर अपलोड प्रक्रिया को इंटरसेप्ट करने और वहां अपलोड फ़ोल्डर को बदलने की आवश्यकता है। आपने जो पोस्ट किया है वह सही दिशा में जा रहा है, लेकिन आपको आने वाली $_POSTडेटा के साथ काम करना होगा और अपलोडिंग ['mime-type']प्रक्रिया के दौरान वर्डप्रेस स्टोर करने वाली फ़ाइलों को अपलोड करने के लिए खोज कर वहां फ़िल्टर लागू करना होगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.