WordPress “添加媒體”隻顯示上傳到本文章/頁面的文件

前些天,@小原 朋友詢問,如何在文章編輯的“添加媒體”中隻顯示上傳到本文章的文件,因為默認會顯示所有文件,如果文件很多,加載起來非常慢,還會出現假死現象。要解決這個問題,將下面的代碼添加到當前主題的 functions.php 文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * WordPress “添加媒體”隻顯示上傳到本文章/頁面的附件
 * https://www.wpdaxue.com/media-only-uploaded-to-this-post.html
 */
add_action( 'wp_footer', 'firmasite_mediapanel_lock_uploaded' );//讓前臺編輯器也生效
add_action( 'admin_footer-post-new.php', 'firmasite_mediapanel_lock_uploaded' );
add_action( 'admin_footer-post.php', 'firmasite_mediapanel_lock_uploaded' );
function firmasite_mediapanel_lock_uploaded() { ?>
<script type="text/javascript">
	jQuery(document).on("DOMNodeInserted", function(){
		jQuery('select.attachment-filters [value="uploaded"]').attr( 'selected', true ).parent().trigger('change');
	});
</script>
<?php }

/**
* WordPress “添加媒體”隻顯示上傳到本文章/頁面的附件
* https://www.wpdaxue.com/media-only-uploaded-to-this-post.html
*/
add_action( ‘wp_footer’, ‘firmasite_mediapanel_lock_uploaded’ );//讓前臺編輯器也生效
add_action( ‘admin_footer-post-new.php’, ‘firmasite_mediapanel_lock_uploaded’ );
add_action( ‘admin_footer-post.php’, ‘firmasite_mediapanel_lock_uploaded’ );
function firmasite_mediapanel_lock_uploaded() { ?>
<script type="text/javascript">
jQuery(document).on("DOMNodeInserted", function(){
jQuery(‘select.attachment-filters [value="uploaded"]’).attr( ‘selected’, true ).parent().trigger(‘change’);
});
</script>
<?php }

這樣一來,“添加媒體”窗口就隻能顯示上傳到本文章的文件。頁面也是一樣的。該方法隻支援 WP 3.5 及以上版本。如果你在網站前臺也調用瞭編輯器,上面代碼的第 5 行就可以讓前臺也一樣生效。

media-only-uploaded-to-this-post-wpdaxue_com

參考資料:http://unsalkorkmaz.com/how-to-lock-uploads-to-show-only-uploaded-to-this-post-in-media-panel/

2014-8-1更新:有朋友反饋,使用上面的代碼後,隻能顯示“上傳到本文章的”媒體,沒辦法切換到“所有多媒體項目”,如果是這樣的話,大傢可以下載安裝 Default Media Uploader View 即可(不要和上面的代碼同用)

發佈留言