WordPress.org

Make WordPress Core

Changeset 23776


Ignore:
Timestamp:
03/22/13 08:08:46 (13 months ago)
Author:
helen
Message:

Add a generic get_attached_media() function and use it in get_attached_audio|video|images. Add filters for the query args and resulting array. fixes #23843.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/media.php

    r23774 r23776  
    17751775 
    17761776/** 
    1777  * Retrieve audio attached to the passed post 
    1778  * 
    1779  * @since 3.6.0 
    1780  * 
     1777 * Retrieve media attached to the passed post 
     1778 * 
     1779 * @since 3.6.0 
     1780 * 
     1781 * @param string $type (Mime) type of media desired 
    17811782 * @param int $post_id  Post ID 
    1782  * @return array Found audio attachments 
    1783  */ 
    1784 function get_attached_audio( $post_id = 0 ) { 
     1783 * @return array Found attachments 
     1784 */ 
     1785function get_attached_media( $type, $post_id = 0 ) { 
    17851786    $post = empty( $post_id ) ? get_post() : get_post( $post_id ); 
    17861787    if ( empty( $post ) ) 
    17871788        return; 
    17881789 
    1789     $children = get_children( array( 
     1790    $args = array( 
    17901791        'post_parent' => $post->ID, 
    17911792        'post_type' => 'attachment', 
    1792         'post_mime_type' => 'audio', 
    1793         'posts_per_page' => -1 
    1794     ) ); 
    1795  
    1796     if ( ! empty( $children ) ) 
    1797         return $children; 
     1793        'post_mime_type' => $type, 
     1794        'posts_per_page' => -1, 
     1795        'orderby' => 'menu_order', 
     1796        'order' => 'ASC', 
     1797    ); 
     1798 
     1799    $args = apply_filters( 'get_attached_media_args', $args, $type, $post ); 
     1800 
     1801    $children = get_children( $args ); 
     1802 
     1803    return (array) apply_filters( 'get_attached_media', $children, $type, $post ); 
     1804} 
     1805 
     1806/** 
     1807 * Retrieve audio attached to the passed post 
     1808 * 
     1809 * @since 3.6.0 
     1810 * 
     1811 * @param int $post_id  Post ID 
     1812 * @return array Found audio attachments 
     1813 */ 
     1814function get_attached_audio( $post_id = 0 ) { 
     1815    return get_attached_media( 'audio', $post_id ); 
    17981816} 
    17991817 
     
    18071825 */ 
    18081826function get_attached_video( $post_id = 0 ) { 
    1809     $post = empty( $post_id ) ? get_post() : get_post( $post_id ); 
    1810     if ( empty( $post ) ) 
    1811         return; 
    1812  
    1813     $children = get_children( array( 
    1814         'post_parent' => $post->ID, 
    1815         'post_type' => 'attachment', 
    1816         'post_mime_type' => 'video', 
    1817         'posts_per_page' => -1 
    1818     ) ); 
    1819  
    1820     if ( ! empty( $children ) ) 
    1821         return $children; 
     1827    return get_attached_media( 'video', $post_id ); 
    18221828} 
    18231829 
     
    20042010 */ 
    20052011function get_attached_images( $post_id = 0 ) { 
    2006     $post = empty( $post_id ) ? get_post() : get_post( $post_id ); 
    2007     if ( empty( $post ) ) 
    2008         return array(); 
    2009  
    2010     $children = get_children( array( 
    2011         'post_parent' => $post->ID, 
    2012         'post_type' => 'attachment', 
    2013         'post_mime_type' => 'image', 
    2014         'posts_per_page' => -1, 
    2015         'orderby' => 'menu_order', 
    2016         'order' => 'ASC' 
    2017     ) ); 
    2018  
    2019     if ( ! empty( $children ) ) 
    2020         return $children; 
    2021  
    2022     return array(); 
     2012    return get_attached_media( 'image', $post_id ); 
    20232013} 
    20242014 
Note: See TracChangeset for help on using the changeset viewer.