2013-02-18 10 views
5

W panelu administracyjnym, w Media -> Library, jak wyszukiwać pliki multimedialne za pomocą nazwa pliku w polu "media wyszukiwania"?Wyszukiwanie według nazwy pliku w Bibliotece multimediów

Wiem, że nazwa pliku jest umieszczona w kolumnie "GUID" w bazie danych, ale nie wiem, gdzie mogę znaleźć kod odpowiedzialny za wyszukiwanie multimediów, np. MySQL select.

Teraz wyszukuje tylko w kolumnie post_title. Próbowałem również znaleźć $_REQUEST['s'], ale bez rezultatu.

Odpowiedz

11

znalazłem rozwiązanie w WordPress Developers #45153, ale tutaj są związane Q & to:

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; 
} 

Było sugestię, że muszę sprawdzić, ale wydaje się dobre: ​​

Zmień $_GET['s'] do $a_wp_query->query_vars['s'] tak, że ta działa również, gdy funkcja wyszukiwania nazywa poprzez POST ajax, na przykład przy użyciu Okno "Utwórz galerię".

+0

Działa świetnie. Po prostu umieść go w 'functions.php' w swoim katalogu tematycznym. Dziękujemy! –

+5

@ Arek-Krakiewicz.pl, lepiej jest [stworzyć własną wtyczkę] (http://wordpress.stackexchange.com/q/72160/12615);) – brasofilo

+0

Czyste rozwiązanie do tej pory. Należy jednak pamiętać, że wyszukiwanie multimediów rozszerza się, szukając wartości 'guid', która przez deafultację jest adresem URL wpisów wpisów (odpowiednio plików). Jeśli więc powiedzmy, że twoja domena to _example.com_, a nazwa przesłanego pliku multimedialnego to _example-image.jpg_, to podczas wyszukiwania "przykład" ** otrzymasz ** wszystkie pliki ** jako wynik **. – Arvid

Powiązane problemy