it-swarm.com.de

Verstecke alte Anhänge aus der wp Medienbibliothek

Ich versuche, die Dateien einzuschränken, die im Popup der WordPress-Medienbibliothek angezeigt werden (von wp_editor).

Derzeit wird jede einzelne Datei, die ich jemals auf meine Website hochgeladen habe, in der Bibliothek angezeigt. Ich möchte jedoch die Anzeige auf Dateien beschränken, die in den letzten 24 Stunden hochgeladen wurden.

Es ist möglich, die Medienbibliothek mit dem folgenden Code nach Autor einzuschränken. Ich bin mir jedoch noch nicht einmal sicher, wo ich anfangen soll, das Popup der Medienbibliothek auf Dateien zu beschränken, die in den letzten 24 Stunden hochgeladen wurden.

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;
}
4
ameeromar

Sie können die Anhangsabfrage im Medienbibliotheks-Popup über den Filter ajax_query_attachments_args anpassen.

Hier sind zwei Beispiele für PHP 5.4+:

Beispiel 1:

Nur Anhänge anzeigen, die in den letzten 24 Stunden hochgeladen wurden:

/**
 * 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;
} );

Beispiel 2:

Nur Anhänge anzeigen, die vom aktuellen Benutzer in den letzten 24 Stunden hochgeladen wurden:

/**
 * 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;
} );
5
birgire

Fügen Sie auf diese Weise den Filter "ajax_query_attachments_args" hinzu, und URL-Variablen werden an die Klasse WP_Query gesendet

standardmäßig wird gesendet

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"
}

Hier können Sie nach Ihren Wünschen ändern

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;
}  
2
Salem Terrano