Intereting Posts
Ограничить определенные действия только для страниц меню только для плагина Woocommerce WP_Query post__not_in проблема Как сделать свою загрузку плагинов до вывода заголовков, чтобы я мог перенаправить wordpress? Как редактировать страницы после установки WP Как проверить, включен ли плагин через API? Как добавить тег <span> в wp_nav_menu в дочерней теме Как я могу связать post_row_actions () с пользовательской функцией действия Часовой пояс UTC to PST Запретить пользователю публиковать сообщения в определенных категориях Разрешены ли ссылки в разделе Уведомление об обновлении файла readme.txt плагина? Фильтр сообщений WordPress с использованием Ajax Ссылка на предыдущие сообщения Отображать сообщение запроса на основе двух значений orderby в wordpress Включить HTML (Bootstrap Modal Box) с плагином в мой заголовок Программно публиковать сообщение (пользовательский тип сообщения) с настраиваемыми полями

Скрыть старые вложения из wp media library

Я пытаюсь ограничить файлы, которые отображаются в всплывающей библиотеке wordpress media (из wp_editor).

В настоящее время каждый файл, который я когда-либо загружал на свой сайт, отображается в библиотеке, но я хотел бы ограничить, что пользователи видят только файлы, загруженные за последние 24 часа.

Можно ограничить медиа-библиотеку автором, используя следующий код; однако я даже не уверен, с чего начать ограничивать всплывающее окно медиа-библиотеки в файлы, загруженные за последние 24 часа.

add_action('pre_get_posts','users_own_attachments'); function users_own_attachments( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, 'WP_User') ) return; if( !in_array( $pagenow, array( 'upload.php', 'admin-ajax.php' ) ) return; if( !current_user_can('delete_pages') ) $wp_query_obj->set('author', $current_user->ID ); return; } 

Вы можете настроить запрос вложения в всплывающем окне медиа-библиотеки через фильтр ajax_query_attachments_args .

Вот два примера PHP 5.4+:

Пример №1:

Показывать только вложения, которые загружаются за последние 24 часа:

 /** * Media Library popup * - Only display attachments uploaded during the last 24 hours: */ add_filter( 'ajax_query_attachments_args', function( $args ) { $args['date_query'] = [['after' => '24 hours ago', 'inclusive' => true ]]; return $args; } ); 

Пример №2:

Показывать только вложения, которые загружаются в течение последних 24 часов текущим пользователем:

 /** * Media Library popup * - Only display attachments uploaded during the last 24 hours by the current user: */ add_filter( 'ajax_query_attachments_args', function( $args ) { $args['author'] = get_current_user_id(); $args['date_query'] = [['after' => '24 hours ago', 'inclusive' => true ]]; return $args; } ); 

Добавьте фильтр «ajax_query_attachments_args» таким образом и переменные URL-адреса отправляются в класс WP_Query

по умолчанию отправляется

 array(7) { ["orderby"]=> string(4) "date" ["order"]=> string(4) "DESC" ["posts_per_page"]=> string(2) "40" ["paged"]=> string(1) "1" ["post_type"]=> string(10) "attachment" ["post_status"]=> string(15) "inherit,private" } 

Здесь вы можете изменить по своему вкусу

 add_filter( 'ajax_query_attachments_args', 'my_ajax_query_attachments_args', 1, 10 ); function my_ajax_query_attachments_args($query) { $query['date_query'] = array( array( 'before' => "-1 day", 'inclusive' => true, ), ); var_dump($query); return $query; }