2015-01-14 48 views
3

我想獲取附加到特定帖子的所有圖片。這工作得很好:WordPresspress:get_attached_media('image')按標題排序

$media = get_attached_media('image'); 

我現在需要的是,按照他們的標題排序這些圖像。我已經可以生成列表中的標題列表:

for ($i = 0; $i < count($media); $i++) { 
    get_the_title(array_keys($media)[$i]) 
} 

我不知道如何按標題對此進行排序。誰能幫忙?

回答

5

最好是獲取已經排序的附件,而不是命令結果數組,對吧?這將爲您節省代碼,頭痛和處理。

如果你看WP Codex,get_attached_media()調用get_children(),它調用get_posts()(是的,這很快升級)。在WordPress中,附件(幾乎任何東西)本質上都是post

有這些想法,這應該給你拿附着在發表圖片的名單按標題下令:

$media = get_posts(array(
    'post_parent' => get_the_ID(), 
    'post_type' => 'attachment', 
    'post_mime_type' => 'image', 
    'orderby' => 'title', 
    'order' => 'ASC' 
)); 

編輯:ViszinisAPieter Goosen指出,我直接將電話改爲get_posts()。撥打get_children()沒有任何意義。

注意:'post_parent'參數是必需的,所以我用get_the_ID()作爲它的值添加它。請記住,您需要必須位於循環get_the_ID()才能檢索當前帖子ID。在循環外部使用時,應相應地根據上下文更改此參數值。

+2

爲什麼不直接調用get_posts()呢? – ViszinisA

+0

'ordeby'應該是'title',而不是'post_title' –

+1

感謝提示傢伙。我編輯了我的答案。 – mathielo