2013-02-18 53 views
5

मीडिया पैनल में, मीडिया -> लाइब्रेरी में, मीडिया फ़ाइलों को फ़ाइल नाम "खोज मीडिया" बॉक्स में कैसे खोजें?मीडिया लाइब्रेरी में फ़ाइल नाम से खोजें

मुझे पता है कि फ़ाइल नाम डेटाबेस में "GUID" कॉलम में रखा गया है, लेकिन मुझे नहीं पता कि मैं मीडिया खोज के लिए जिम्मेदार कोड का टुकड़ा कहां पा सकता हूं। MySQL select

अब यह केवल post_title कॉलम में खोज करता है। मैंने $_REQUEST['s'] खोजने की भी कोशिश की, लेकिन बिना परिणाम के।

उत्तर

11

मैं WordPress Developers #45153 में एक समाधान मिल गया, लेकिन यहाँ हैं सभी संबंधित क्यू & ए का:

add_filter('posts_search', 'guid_search_so_14940004', 10, 2); 

function guid_search_so_14940004($search, $a_wp_query) 
{ 
    global $wpdb, $pagenow; 

    // Only Admin side && Only Media Library page 
    if (!is_admin() && 'upload.php' != $pagenow) 
     return $search; 

    // Original search string: 
    // AND (((wp_posts.post_title LIKE '%search-string%') OR (wp_posts.post_content LIKE '%search-string%'))) 
    $search = str_replace(
     'AND ((', 
     'AND (((' . $wpdb->prefix . 'posts.guid LIKE \'%' . $_GET['s'] . '%\') OR ', 
     $search 
    ); 

    return $search; 
} 

एक सुझाव है कि इस बात की पुष्टि करने की जरूरत नहीं थी, लेकिन अच्छा लगता है:

बदलें $_GET['s'] ताकि यह भी खोज समारोह एक ajax पोस्ट के माध्यम से कहा जाता है जब काम करता है, उदाहरण के लिए जब का उपयोग कर $a_wp_query->query_vars['s'] को "गैलरी बनाएं" संवाद।

+0

अच्छा काम करता है। बस इसे अपने थीम कैटलॉग में 'functions.php' में डालें। धन्यवाद! –

+5

@ अरेक- क्राकिविचज़.पीएल, यह बेहतर है [अपनी खुद की प्लगइन बनाएं] (http://wordpress.stackexchange.com/q/72160/12615);) – brasofilo

+0

अभी तक साफ समाधान। लेकिन ध्यान रखें कि मीडिया खोज को 'guid' मान की तलाश करके बढ़ाया जाता है, जो डेफल्ट द्वारा पोस्ट प्रविष्टियों का URL है (फ़ाइलों के क्रमशः)। इसलिए, अगर मान लें कि आपका डोमेन _example.com_ है और आपकी अपलोड की गई मीडिया फ़ाइल का नाम _example-image.jpg_ है तो आपको "उदाहरण" ** खोजते समय ** सभी फाइल ** ** परिणाम मिलेगा। – Arvid