2013-02-18 5 views
5

Im Admin-Panel, in Medien -> Bibliothek, wie Mediendateien nach Dateiname in "Search Media" suchen?Suche nach Dateiname in der Medienbibliothek

Ich weiß, der Dateiname ist in der Spalte "GUID" in der Datenbank platziert, aber ich weiß nicht, wo ich den Code für die Mediensuche, z. MySQL select.

Nun wird nur in der Spalte post_title gesucht. Ich habe auch versucht, $_REQUEST['s'] zu finden, aber mit ohne Ergebnis.

Antwort

11

fand ich eine Lösung in WordPress Developers #45153, aber hier sind alle damit verbundenen Q & A ist:

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

Es gab einen Vorschlag, den ich überprüfen muß, scheint aber gut:

ändern $_GET['s']-$a_wp_query->query_vars['s'] so, dass dies funktioniert auch, wenn die Suchfunktion über einen Ajax-POST aufgerufen wird, zB wenn die Verwendung von "Galerie erstellen" -Dialog

+0

Funktioniert gut. Setzen Sie es einfach in 'functions.php' in Ihren Themenkatalog. Danke! –

+5

@ Arek-Krakiewicz.pl, es ist besser, [erstellen Sie Ihr eigenes Plugin] (http://wordpress.stackexchange.com/q/72160/12615);) – brasofilo

+0

Ordentlich Lösung so weit. Beachten Sie jedoch, dass die Mediensuche erweitert wird, indem nach dem "guid" -Wert gesucht wird, der die URL der Posteinträge (bzw. der Dateien) angibt. Wenn Ihre Domain beispielsweise _example.com_ lautet und der Name Ihrer hochgeladenen Mediendatei _example-image.jpg_ lautet, erhalten Sie ** alle Dateien ** als Ergebnis **, wenn Sie nach "example" ** suchen. – Arvid