5
在管理面板的媒體 - >媒體庫中,如何在「搜索媒體」框中搜索文件名爲的媒體文件?按媒體庫中的文件名搜索
我知道文件名被放置在數據庫的「GUID」列中,但我不知道在哪裏可以找到負責媒體搜索的代碼段,例如。 MySQL select
。
現在它只在post_title
列中搜索。我也試圖找到$_REQUEST['s']
,但沒有結果。
在管理面板的媒體 - >媒體庫中,如何在「搜索媒體」框中搜索文件名爲的媒體文件?按媒體庫中的文件名搜索
我知道文件名被放置在數據庫的「GUID」列中,但我不知道在哪裏可以找到負責媒體搜索的代碼段,例如。 MySQL select
。
現在它只在post_title
列中搜索。我也試圖找到$_REQUEST['s']
,但沒有結果。
我發現了一個解決方案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調用,例如,當使用「創建圖庫」對話框。
工程很好。 只需將它放在主題目錄中的'functions.php'中即可。 謝謝! – 2013-02-26 13:50:09
@ Arek-Krakiewicz.pl,最好[創建你自己的插件](http://wordpress.stackexchange.com/q/72160/12615);) – brasofilo 2013-02-26 13:57:08
目前爲止的整潔解決方案。但請注意,通過查找「guid」值來擴展媒體搜索,通過deafult是post條目的URL(分別是文件)。因此,如果假設您的域是_example.com_,並且您上傳的媒體文件的名稱是_example-image.jpg_,則在搜索「example」**時,您將獲得**所有文件**作爲結果**。 – Arvid 2016-04-29 15:09:09