WordPress 獲取當前文章下的全部附件/獲取指定ID文章的附件(圖片、文件、視頻)

參考WordPress官方文檔地址:https://developer.wordpress.org/reference/functions/get_attached_media/php

介紹及用途

WordPress[3.6.0以上] 提供了很是方便的獲取指定文章ID附件的方式,方便用戶獲取文章的附件內容.
一般咱們將這個函數用於編寫例如app

  1. 獲取文章頁全部圖片,用於展現豐富的文章圖片內容ide

  2. 我曾經看到過一個文章沒有設置特點圖像,卻可以在文章縮略圖上顯示被WP裁剪過的圖片地址,它不是經過直接從文章內容中獲取圖片地址生成,而是經過獲取附件後,在返回對應的格式進行處理,這類方式比直接從文章分割出圖片地址來的更爲可靠.wordpress

  3. 獲取文章頁指定格式附件函數

舊的獲取方式

固然,這在[3.6.0]之前版本,也有另外的獲取方式,新的函數只是將舊的獲取方式進行了打包罷了post

// 舊方式,也是如今被打包的方式
$args = array(
    'post_parent' => $post->ID,
    'post_type' => 'attachment',
    'post_mime_type' => $type,
    'posts_per_page' => -1,
    'orderby' => 'menu_order',
    'order' => 'ASC',
);

新的獲取函數:

get_attached_media ( string $type, int|WP_Post $post )

該函數一共須要兩個參數,一個是附件類型,一個是$post全局變量或文章ID
若是你的附件類型填的是空,那麼將會得到到全部的附件,若是填寫的是指定的Mime type(附件類型),則會取得對應格式附件.code

有哪些Mine type(附件類型)

WordPress 默認有如下附件類型 (由於你能夠添加本身的附件類型)圖片

  • image文檔

  • videoget

  • audio

  • text

  • application

若是你想了解具體文件的附件類型,你能夠參考

wp-includes/functions.php [2336 - 2447]
函數名爲:wp_get_mime_types()

示例

// 獲取文章中全部附件
$attachments = get_attached_media( '', $post->ID );

// 獲取文章中全部圖片
$attachments = get_attached_media( 'image', $post->ID );

可能致使的問題

WordPress 附件所屬文章僅保存第一次上傳時的文章.
因此你在其它文章調用這張被上傳的圖片時,你將不會在(其它文章)獲取到該附件.

解決方案

留給你思考(或者等我更新)

相關文章
相關標籤/搜索