5

管理パネル内の [メディア] -> [ライブラリ] の [メディアの検索] ボックスで、メディア ファイルをファイル名で検索する方法を教えてください。

ファイル名がデータベースの「GUID」列に配置されていることは知っていますが、メディア検索を担当するコードがどこにあるのかわかりません。MySQL select.

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

4

2 に答える 2

10

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

検証する必要があるという提案がありましたが、良さそうです:

「Create Gallery」ダイアログを使用する場合など、検索機能が ajax POST 経由で呼び出された場合にも機能するように変更$_GET['s']します。$a_wp_query->query_vars['s']

于 2013-02-18T19:34:38.150 に答える