it-swarm.com.de

Separate Medienbibliothek für jeden Benutzer

Ich erstelle ein Design für einen Kunden. Eine der Anforderungen besteht darin, Benutzern das Hochladen von Bildern für den eigenen Gebrauch zu ermöglichen. Möglicherweise gibt es jedoch eine Option, um die Bilder freizugeben.

Hier sind einige der Vorsichtsmaßnahmen:

  • Jeder Benutzer hat die Möglichkeit, eigene Bilder in seine eigene Medienbibliothek hochzuladen.
  • Diese Bilder müssen genau so gekennzeichnet werden können, wie wir sie jetzt kennzeichnen.
  • Der Administrator kann diese Bilder auch verwalten.

Ist dies erstens möglich und ist es möglich, eine 'Tag'-Taxonomie für Bilder zu erstellen?

Danke für Ihre Hilfe.

6
Anthony

Eingebaute Funktionen

Die Medienbibliothek enthält wichtige Updates für die bevorstehende Version. Sie können die Änderungen in den Folien von Daryl Koopersmith hier sehen . Sie können die Ankündigung und Diskussion auf "Make" lesen .

Ihre Anfrage für "tags/categories" ist bereits in 3.5 integriert.

Hinweis

Der Unterschied zwischen Themes und Plugins ist ziemlich einfach: Anzeige vs. Funktionalität. Daher würde ich vorschlagen, solche Funktionen nicht in ein Theme zu integrieren, sondern sie als Plugin getrennt zu halten. Ihr Vorteil dabei: Sie/Ihr Kunde verlieren diese Funktionalität nicht bei einem Update oder einem Themenwechsel. Es macht einfach dein Leben viel einfacher. Stellen Sie sich vor, Sie hätten einen anderen Kunden, der dies anfordert. Dann laden Sie einfach Ihr bereits vorhandenes Plugin hoch, anstatt es aus Ihrem Thema zu entfernen und in das nächste Thema zu verschieben.

3
kaiser

Wie Kaiser bereits erwähnt hat, verwendet die Medienbibliothek in der nächsten Version von WordPress eine Benutzeroberfläche, die näher an der Schnittstelle zwischen Beiträgen und Seiten liegt.

Da es sich bei der Medienbibliothek im Wesentlichen um ein CPT mit der Bezeichnung "Anhang" handelt, können Sie den Beitragstyp "Anhang" kommentieren, Post-Meta verwenden und Taxonomien zuweisen.

3.4.2 unterstützt all dies, zeigt jedoch nicht die Taxonomien-Benutzeroberfläche für Medientypen an. 3,5 tut.

Das Taggen ist also erledigt.

Um Administratoren alles zu zeigen und einzelnen Benutzern ihre eigenen Medienbibliotheken zu geben? Sie müssen sie basierend auf 'author' herausfiltern, indem Sie einen pre_get_posts-Filter verwenden, der nur im Backend ausgeführt wird, und wenn der Benutzer keine Administratorrolle oder höher hat und die Abfrage nur nach Posts vom Typ 'attachment' sucht '.

3
Tom J Nowell

Diese Frage & Antwort zeigt, wie die Beiträge, die eine Benutzerrolle im Dashboard sehen kann, eingeschränkt werden. Es fehlte der Anlagenteil, nämlich:

add_filter( 'pre_get_posts', 'wpse_72278_current_author_media' );
add_filter( 'views_upload', 'wpse_72278_custom_view_count', 10, 1 );

function wpse_72278_current_author_media( $query ) 
{
    global $pagenow, $user_ID;

    if( 'upload.php' !== $pagenow )
        return $query;

    if ( $query->is_admin && current_user_can( 'editor' ) ) 
        $query->set( 'author', $user_ID );      

    return $query;
}

function wpse_72278_custom_view_count( $views ) 
{
    global $user_ID, $wpdb;

    if ( !current_user_can('editor') ) 
        return $views;

    $total = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = '$user_ID'
        AND post_type = 'attachment' " );
    $image = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = '$user_ID' 
        AND post_mime_type LIKE 'image/%' " );
    $video = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = '$user_ID' 
        AND post_mime_type LIKE 'video/%' " );
    $detached = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = '$user_ID' 
        AND post_type = 'attachment' AND post_parent = '0' " );

    $views['all'] = preg_replace( '/\(.+\)/U', '('.$total.')', $views['all'] ); 
    $views['image'] = preg_replace( '/\(.+\)/U', '('.$image.')', $views['image'] ); 
    $views['video'] = preg_replace( '/\(.+\)/U', '('.$video.')', $views['video'] ); 
    $views['detached'] = preg_replace( '/\(.+\)/U', '('.$detached.')', $views['detached'] ); 

    return $views;
}

Diese andere kümmert sich um die Ausgabe eines Beitrags eines Autors und den Upload eines anderen Autors.

Und falls Sie noch nicht in Version 3.5 springen, diese letzte behandelt benutzerdefinierte Felder für Anhänge.

3
brasofilo