2013-02-18 14 views
5

管理パネル内のメディア - >ライブラリで、メディアファイルを検索する方法"検索メディア"ボックスにファイル名メディアライブラリのファイル名で検索

私はファイル名がデータベースの "GUID"列に置かれていることを知っていますが、私はどこでメディア検索を担当するコードを見つけることができるのかわかりません。 MySQL select

今すぐpost_titleの列のみを検索します。私も$_REQUEST['s']を見つけようとしましたが、結果はありませんでした。

答えて

11

私はWordPress Developers #45153で解決策を見つけましたが、ここではすべての関連Qは& Aさんです:

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']$a_wp_query->query_vars['s']に、これはまた、検索機能はAJAX POST経由で呼び出されたときに動作するように、例えば使用した場合"ギャラリーを作成"ダイアログ。

+0

素晴らしいです。 あなたのテーマカタログの 'functions.php'に入れてください。 ありがとうございました! –

+5

@ Arek-Krakiewicz.pl、それはあなた自身のプラグインを作成することをお勧めします(http://wordpress.stackexchange.com/q/72160/12615);) – brasofilo

+0

これまでのところニートな解決策。しかし、メディア検索は 'guid'値を探すことによって拡張されることに注意してください。これは、deafultによってポストエントリー(それぞれファイルの)のURLです。したがって、あなたのドメインが_example.com_で、アップロードされたメディアファイルの名前が_example-image.jpg_の場合、 "example" **を検索すると、**すべてのファイル**が結果**として取得されます。 – Arvid

関連する問題