wp_ajax_query_attachments
Ajax handler for querying attachments.
Description
wp_ajax_query_attachments();
Usage
if ( !function_exists( 'wp_ajax_query_attachments' ) ) { require_once ABSPATH . '/wp-admin/includes/ajax-actions.php'; } // NOTICE! Understand what this does before running. $result = wp_ajax_query_attachments();
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/ajax-actions.php
- function wp_ajax_query_attachments() {
- if ( ! current_user_can( 'upload_files' ) )
- $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
- $keys = array(
- 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
- 'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
- );
- foreach ( get_taxonomies_for_attachments( 'objects' ) as $t ) {
- if ( $t->query_var && isset( $query[ $t->query_var ] ) ) {
- $keys[] = $t->query_var;
- }
- }
- $query = array_intersect_key( $query, array_flip( $keys ) );
- $query['post_type'] = 'attachment';
- if ( MEDIA_TRASH
- && ! empty( $_REQUEST['query']['post_status'] )
- && 'trash' === $_REQUEST['query']['post_status'] ) {
- $query['post_status'] = 'trash';
- } else {
- $query['post_status'] = 'inherit';
- }
- if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
- $query['post_status'] .= ', private';
- // Filter query clauses to include filenames.
- if ( isset( $query['s'] ) ) {
- }
- /**
- * Filters the arguments passed to WP_Query during an Ajax
- * call for querying attachments.
- *
- * @since 3.7.0
- *
- * @see WP_Query::parse_query()
- *
- * @param array $query An array of query variables.
- */
- $query = apply_filters( 'ajax_query_attachments_args', $query );
- $query = new WP_Query( $query );
- $posts = array_map( 'wp_prepare_attachment_for_js', $query->posts );
- $posts = array_filter( $posts );
- wp_send_json_success( $posts );
- }