2013-03-15 6 views
6

में अपलोड किया गया है, मैं एक वर्डप्रेस साइट बना रहा हूं जहां पंजीकृत उपयोगकर्ता के पास फ्रंट पर wp_editor() के माध्यम से अपनी पोस्ट बनाने की क्षमता है, लेकिन केवल एक पोस्ट है।वर्डप्रेस शो केवल मीडिया उपयोगकर्ता wp_editor

अब मैं उपयोगकर्ता को अपने अपलोड किए गए मीडिया को देखने में सक्षम होना चाहता हूं। मैं functions.php में निम्न स्क्रिप्ट का उपयोग करता हूं, जो बैकएंड में काम करता है। तो यदि कोई उपयोगकर्ता बैकएंड में मीडिया अनुभाग में जाता है तो वह केवल उसके अपलोड किए गए मीडिया को ही देखेगा।

लेकिन यदि उपयोगकर्ता फ्रंटएंड wp_editor पर "मीडिया डालें" पॉप-अप पर जाता है तो वह अब भी सभी उपयोगकर्ताओं से अपलोड किए गए मीडिया को देख सकता है।

function restricted_media_view($wp_query) { 
if (strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php') !== false 
|| strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php') !== false) { 
    if (!current_user_can('level_5')) { 
     global $current_user; 
     $wp_query->set('author', $current_user->id); 
    } 
    } 
} 
add_filter('parse_query', 'restricted_media_view'); 

क्या आपको इस परेशानी को हल करने के लिए गर्म विचार है? धन्यवाद!

उत्तर

11

आप इस प्लगइन कोशिश कर सकते हैं: http://wordpress.org/extend/plugins/view-own-posts-media-only/

वैकल्पिक रूप से इस प्रयास करें:

add_action('pre_get_posts','ml_restrict_media_library'); 

function ml_restrict_media_library($wp_query_obj) { 
    global $current_user, $pagenow; 
    if(!is_a($current_user, 'WP_User')) 
    return; 
    if('admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments') 
    return; 
    if(!current_user_can('manage_media_library')) 
    $wp_query_obj->set('author', $current_user->ID); 
    return; 
} 

स्रोत: http://wpsnipp.com/index.php/functions-php/restricting-users-to-view-only-media-library-items-they-upload/#comment-810649773

+0

धन्यवाद जाँच काम करता है !! प्लगइन मेरे लिए चाल करना प्रतीत होता है! :) – Sebsemillia

+0

ग्रेट। खुशी है कि यह काम किया। –

+0

धन्यवाद, यह कोशिश करना और खोजना वाकई मुश्किल था! –

6

वैकल्पिक रूप से WordPress 3.7 के बाद से

add_filter('ajax_query_attachments_args', "user_restrict_media_library"); 
function user_restrict_media_library( $query) { 
    global $current_user; 
    $query['author'] = $current_user->ID ; 
    return $query; 
} 
+1

यह 3.8 पर मेरे लिए भी अच्छा काम करता है, धन्यवाद :) –

+1

प्रलेखन में अब थोड़ा अलग तरीका प्रदान किया गया है: http://codex.wordpress.org/Plugin_API/Filter_Reference/ajax_query_attachments_args#Examples – David

1

मैं उपयोग एपीआई/फ़िल्टर संदर्भ/AJAX क्वेरी अटैचमेंट पिता WP 4.3.1 के लिए आर्ग और

add_filter('ajax_query_attachments_args', 'show_current_user_attachments', 10, 1); 

function show_current_user_attachments($query = array()) { 
    $user_id = get_current_user_id(); 
    if($user_id) { 
     $query['author'] = $user_id; 
    } 
    return $query; 
} 

सिर्फ functions.php

पर जोड़ सकते हैं या इस लिंक WP Codex

संबंधित मुद्दे