Alle Bilder aus der Mediathek auslesen

  • Hallo.
    Ich suche nach einer Möglichkeit alle Bilder die sich in der Mediathek befinden chronologisch auf einer Seite auszugeben.
    Lässt sich das mit boardmitteln bewerkstelligen (z.B. mit dem [gallery]-Tag)?
    Oder welches Plugin wäre geeignet dafür?

    Vielen Dank im vorraus und Grüße!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ja, das geht.

    Nimm die index.php Deines Themes und speichere sie als bilder.php. Ganz am Anfang der Datei füge folgendes ein:

    PHP
    <?php
    /*
    Template Name: Bilder
    */
    ?>

    Suche in der Datei die Zeile mit folgendem Inhalt (oder ähnlich):

    PHP
    <?php if (have_posts()) ...

    Füge direkt in der Zeile darüber folgendes ein:

    PHP
    <?php
    global $wp_query;
    $new_query = array_merge( array( 'post_type' => 'attachment', 'post_status'=>'inherit', 'post_mime_type'=>'image' ), $wp_query->query );
    unset( $new_query['pagename'] );
    query_posts( $new_query );
    ?>

    Erstelle eine neue statische Seite "Bilder" und weise ihr als
    Template (rechts unter Attribute) dasTemplate Bilder zu.

    Über diese neue Seite werden nun alle Bilder chronologisch absteigend angezeigt.
    Du kannst dann noch die Ausgabe in der Datei bilder.php anpassen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Klingt gut!

    Hallo Putzlowitsch,
    vielen Dank für deine Antwort!!!
    Leider will es nicht.

    Mein Code sieht nun wie folgt aus:

    Das entsprechende Template habe ich ausgewählt für meine Seite.
    Ausgegeben wird nichts! Im Quellcode steht an der entsprechenden Stelle ebenfalls nichts.

    Hab ich was falsch gemacht? Muss man da noch irgendetwas anpassen?

    Vielen Dank und Grüße!

    Einmal editiert, zuletzt von pois (26. März 2010 um 14:37)

  • Also das php muß direkt nach den Kopfzeilen geschlossen werden:

    So sollte es gehen. Wichtig ist auch auch das [COLOR=#000000][COLOR=#007700]unset( [/COLOR][COLOR=#0000bb]$new_query[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'page_id'[/COLOR][COLOR=#007700]] );[/COLOR][/COLOR][COLOR=Black], welches ich eingefügt habe. Sonst funktioniert es nicht ohne Permalinks. [/COLOR][COLOR=#000000][COLOR=#007700]
    [/COLOR][/COLOR]
    [COLOR=Black]
    Gruß
    Ingo[/COLOR][COLOR=#000000][COLOR=#007700]
    [/COLOR][/COLOR]

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Aha!

    Jetzt geht es.
    Vielen Dank!!!

    Es lag an der Zeile:

    PHP
    unset( $new_query['page_id'] );

    Das php im Kopf war bereits geschlossen...hatte es nur falsch gepostet. Sorry!

    Kann ich noch weitere Details für die Bilder auslesen, wie den Namen des Bildes oder die das Einstelldatum, oder die Angaben unter "Verwendet in" (also einen Link zum Artikel)?
    Kann man irgendwo die Bildgröße bestimmten und die Anzahl der Bilder pro Seite?

    Ersteinmal 1000 Dank!
    Viele Grüße!

    PS. Woher kennst du den Trick. Kann man das irgendwo nachlesen.

    Einmal editiert, zuletzt von pois (26. März 2010 um 16:01)

  • Ja, Du kannst da praktisch alle Daten ausgeben, die man auch für Artikel verwenden kann, z.B. Datum und "Autor":

    PHP
    <?php the_time('d.m.Y H:i'); ?> von <?php the_author(); ?>

    den Link zum Artikel bekommt man z.B. so:

    PHP
    global $post;
    $url = get_permalink( $post->post_parent );

    Das ist auch kein Trick, sondern die Zusammenführung von ein paar dokumentierten WP-Funktionen:
    - Seiten-Vorlagen
    - Funktion query_posts
    Naja, ein bißchen Erfahrung mir Wordpress spielt auch eine Rolle. :-)

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Kann man irgendwo noch bestimmen in welcher Größe die Bilder dargestellt werden? Teilweise werden die Bilder sehr groß dargestellt, so das nur ein kleiner Ausschnitt zu sehen ist (der Rest wird mittels overflow:hidden abgeschnitten).

    Vielen Dank und Grüße!

  • Normalerweise nimmt WP hier ein medium-Bild (falls vorhanden), also das, welches als mittlere Größe erzeugt wird (siehe Einstellungen->Mediathek). Das hat dann bei richtiger Konfiguration genau die Breite des Content-Bereiches.

    Per CSS sollte es alternativ auch so funktionieren:

    Code
    p.attachment img { max-width:450px; height:auto; }

    Allerdings können ältere Browser (ich weiß es vom IE6) wohl nichts mit max-width anfangen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

    Einmal editiert, zuletzt von Putzlowitsch (8. April 2010 um 13:53)

  • Ok, mit css würde es gehen. Obwohl max-width ja immer schwierig ist...

    Gäbe es denn auch eine Wordpress-Lösung? Oder ist man da auf das mittlere Bild angewiesen?

    Wann wird denn eigentlich so ein mittleres Bild erzeugt? Schon wenn die das Bild hochgeladen wird? Oder erst wenn ein Bild in einen Post eingefügt wird?

    Mich wundert eben, dass dort diese riesigen Bilder in der Galerie erscheinen.

    Vielen Dank schon mal und Grüße!

  • kann ich mich mit meiner Frage hier gleich noch mal anhängen?

    Ich möchte alle Bilder ausgeben, die zu einer bestimmten seite gehören. Hier mein Code:

    funktioniert auch schon ganz prima - nur, leider bekomme ich so nur die letzten 5 Bilder :?
    Ich hätte aber gern die letzten 12 Bilder.

    Was fehlt?

    tschüß [size=24][color=olive]n[/color][/size]epf

  • nepf
    Bei den $args noch numberposts hinzufügen:

    PHP
    $args = array(
      'post_type' => 'attachment',
      'post_mime_type' => 'image',
      'post_parent' => $post->ID,
        'numberposts' => 12
    );

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • pois
    Die mittleren Bilder werden genau wie die Thumbnails beim Hochladen des Bildes erzeugt.

    Nachträglich kann man die zu großen Bilder halt nur noch per HTML oder CSS "skalieren". CSS hatte ich ja schon beschrieben, per HTML geht es so:


    Das kommt in die functions.php Deines Themes und im array( 500, 500) ist die gewünschte Zielgröße in Pixel einzutragen. Das sollte dann die Breite Deines Contentbereiches sein.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Okay, ich hab dazu jetzt mal eine Frage, da man die Bilder in der Mediathek nicht tagen kann.

    Also nehmen wir an es bestehen die Kategorien "Bilder1" und "Bilder2"
    Jetzt sind in beiden dieser Kategorien Bilder.

    Wie muss die Abfrage lauten um nur die Bilder aus der Kategorie "Bilder1" auszulesen?

  • Merci!

    Vielen Dank nochmal. Das hat alles gut funktioniert!

    Nun hab ich noch eine weitere Sache:
    Hat man auch die Möglichkeit die Bilder nach Posts auszugeben (also nicht nach der chronologischen Reihenfolge des Hochladens, da ja auch Bilder später in einem Post ergänzt werden können)?

    Ideal wäre eine Seite auf der man für jeden Post ein Foto sieht von welchem man weitergeleitet wird zu einer Übersicht aller Bilder des Posts.
    Ich hab das hier mal anskizziert...

    [Blockierte Grafik: http://forum.wordpress-deutschland.org/attachment.php?attachmentid=3737]

    Ich hoffe es wird deutlich was ich meine...
    Geht sowas oder muss man dafür irgendwelche Plugins benutzen?

    Vielen Danke und Grüße!

  • Hilf dir selbst :-)

    Mir ist mittlerweile selbst eine Lösung eingefallen:
    Ich werde einfach zwei neue Theme-Dateien bauen für die Foto-Galerie. Die erste zeigt von jedem Post, der ein Bild enthält, das erste Foto an. Beim Klick auf dieses kommt man zu einer Liste aller in dem entsprechenden Post enthaltenen Bildern.

    Oder fällt jemandem eine bessere/einfachere Lösung ein?

    Mein größtes Problem dabei:
    Wie kann ich nur die Post auswählen, die auch wirklich Bilder enthalten???

    Vielen Dank und Grüße!

  • Super dein Snippet. Funktioniert Prima!

    Ich würde es gerne auf verschiendenen Einzelseiten verwenden und gern die Bilder noch filtern (z.B. nach der Beschreibung). Bin Wordpress-Neuling, aber hab glaube ich verstanden, dass es in das array mit reinmuss. Es sollen also nur die Bilder gezeigt werden die "Portrait" in ihrer Beschreibung stehen haben...

    Eine andere Möglichkeit wären verschiedene Ordner in der Mediathek, was aber zumindest bei meiner WP-Version (2.9) nicht geht.

    Vielen Dank,
    Grüße
    Sebastian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!