ajax_query_attachments_args
Позволяет изменить параметры, переданные в WP_Query при ajax запросе медиафайлов (вложений).
Использование
add_filter( 'ajax_query_attachments_args', 'wp_kama_ajax_query_attachments_args_filter' ); /** * Function for `ajax_query_attachments_args` filter-hook. * * @param array $query An array of query variables. * * @return array */ function wp_kama_ajax_query_attachments_args_filter( $query ){ // filter... return $query; }
- $query(массив)
- Массив параметров для WP_Query.
Примеры
#1 Корректное отображение галереи в Carbon Fields в админке
В Carbon Fields v3.1.2 была проблема - загружаешь 20 фото, они отображаются в полной мере, но обновляешь страницу и в поле отображается только то количество, что указано в опции posts_per_page
. Проблема в том, что поле хранит все ID указанных фото, но в админке при ajax запросе WP_Query() возвращало лимитированное кол-во, то есть не все фото, что указаны в параметре post__in
. Задача: определить параметр posts_per_page на основе количества ID, переданных в post__in:
add_filter( 'ajax_query_attachments_args', function ( $query ) { if ( isset( $query['post__in'] ) && is_array( $query['post__in'] ) ) { $query['posts_per_page'] = count( $query['post__in'] ); } return $query; } );
Список изменений
С версии 3.7.0 | Введена. |
Где вызывается хук
ajax_query_attachments_args
wp-admin/includes/ajax-actions.php 3077
$query = apply_filters( 'ajax_query_attachments_args', $query );