Wie Laden Anhang in Medienbibliothek für aktuelle Benutzer?

Ich verwende ( Medienbibliothek ) in meinem Thema auf Frontend.

Es ist möglich, nur den Anhang des aktuellen Benutzers zu laden. Zum Beispiel ist meine wp Benutzer-ID 55 und laden nur meine Anlage und nicht andere von verschiedenen Benutzern?

Es gibt keine Dokumentation darüber, wie Arbeit js in WP …

Solutions Collecting From Web of "Wie Laden Anhang in Medienbibliothek für aktuelle Benutzer?"

Wenn Sie die Anhänge nur in dem Moment filtern möchten, in dem sie über AJAX geladen werden, z. B. beim Einstellen des Post-Featured-Bildes, können Sie Folgendes verwenden:

function filter_get_the_user_attachments( $query ) { $current_user = wp_get_current_user(); if ( !$current_user ) { return; } $current_user_id = $current_user->ID; $query['author__in'] = array( $current_user_id ); return $query; }; add_filter( 'ajax_query_attachments_args', 'filter_get_the_user_attachments', 10 ); 

Ähnlich wie das in der vorherigen Antwort gefundene Snippet aber schneller.

Wenn Sie die Anhänge, die auf der Seite upload.php geladen sind, filtern müssen, können Sie Folgendes tun:

function action_get_the_user_attachments( $query ) { // If we are not seeing the backend we quit. if ( !is_admin() ) { return; } /** * If it's not a main query type we quit. * * @link https://codex.wordpress.org/Function_Reference/is_main_query */ if ( !$query->is_main_query() ) { return; } $current_screen = get_current_screen(); $current_screen_id = $current_screen->id; // If it's not the upload page we quit. if ( $current_screen_id != 'upload' ) { return; } $current_user = wp_get_current_user(); $current_user_id = $current_user->ID; $author__in = array( $current_user_id ); $query->set( 'author__in', $author__in ); } add_action( 'pre_get_posts', 'action_get_the_user_attachments', 10 );
function action_get_the_user_attachments( $query ) { // If we are not seeing the backend we quit. if ( !is_admin() ) { return; } /** * If it's not a main query type we quit. * * @link https://codex.wordpress.org/Function_Reference/is_main_query */ if ( !$query->is_main_query() ) { return; } $current_screen = get_current_screen(); $current_screen_id = $current_screen->id; // If it's not the upload page we quit. if ( $current_screen_id != 'upload' ) { return; } $current_user = wp_get_current_user(); $current_user_id = $current_user->ID; $author__in = array( $current_user_id ); $query->set( 'author__in', $author__in ); } add_action( 'pre_get_posts', 'action_get_the_user_attachments', 10 ); 

Hoffe das hilft.

Sie können Folgendes in ein benutzerdefiniertes Plug-in oder die Datei functions.php Ihrer Themes einfügen

 ///////////////////////////////////////////////////////////// // Show only users their attachments ////////////////////////////////////////////////////////////// add_filter( 'ajax_query_attachments_args', 'show_current_user_attachments' ); function show_current_user_attachments( $query ) { // Global var to grab user and what role they have global $current_user; wp_get_current_user(); // Check the user role so only these roles can see all attachments if(current_user_can('administrator')|| current_user_can('Some other role') ) { // If we are the above user roles we can see all the query return $query; } else { // Check current user ID $user_id = get_current_user_id(); // Grab the user ID and query only the users uploaded items if ( $user_id ) { $query['author'] = $user_id; } // Return users only attachements return $query; } }