Wie organisiere ich Fotos für mehrere Galerien?

Ich arbeite an einer Website, die letztendlich Dutzende von Fotogalerien haben wird, jede Galerie mit mindestens 3-4 Fotos und möglicherweise bis zu 20. Einzelne Fotos werden keine Bildunterschriften, Titel oder andere Metadaten haben; es sind alles nur Bilder, die in eine Galerie gehören. (Eine einzelne Galerie hat einen Titel, eine Beschreibung usw.)

Ich bin nicht sicher, wie man das am besten in WordPress einrichtet. Ich verwende benutzerdefinierte WCK-Felder und bin mit benutzerdefinierten Seiten, Taxonomien usw. vertraut. Da die Fotos keine Metadaten enthalten, erscheint es als Overkill, einen benutzerdefinierten Seitentyp für Fotos zu erstellen. Aber vielleicht tue ich das auch und erstelle dann auch einen eigenen Seitentyp namens “Galerien”, der es dem Benutzer ermöglicht, auszuwählen, welche Fotos in die Galerie gehören?

Oder richte ich die Galerien einfach als benutzerdefinierten Seitentyp ein und lasse den Benutzer irgendwie mehrere Fotos aus der Medienbibliothek auswählen, um sie in die Galerie zu stellen? Dann erstelle ich keinen separaten Seitentyp für Fotos, aber wie würde ich dem Benutzer erlauben, mehrere Fotos aus der Medienbibliothek auszuwählen, um sie der Galerie hinzuzufügen?

Solutions Collecting From Web of "Wie organisiere ich Fotos für mehrere Galerien?"

In letzter Zeit benutze ich diesen Workflow:

  1. Registrieren Sie eine benutzerdefinierte Taxonomie für Anlagen
  2. Verwenden Sie einen Code, um den hochgeladenen Bildern die function der Taxonomie-Terme für die Massenzuordnung hinzuzufügen

    (Weil ich diese 2 Aufgaben häufig mache, habe ich ein Plugin erstellt, das sie implementiert und mehr hier sehen )

  3. Erstellen Sie in einem Plugin einen Shorcode, der aussieht wie [gallery_term tag="landscapes, still_life"] . Dieser Shortcode nimmt die als Shorcode-Parameter übergebenen Tags und verwendet sie in einer WP_Query mit meta_query , um Bilder abzurufen und auszugeben.

Sobald ich fertig bin, muss ich nur Bilder hochladen und ihnen ein Tag für jede Galerie zuweisen, zu der sie gehören (mit meinem Plugin für die Massenzuweisung ist es ein Kinderspiel). Erstellen Sie einen Post (oder eine Seite oder ein cpt) und verwenden Sie den Shortcode. Das ist alles .

Dieser Workflow ist absolut leistungsstark und flexibel:

  • Ich kann Galerien haben, wo immer ich will: auf Seiten, in Posts, in benutzerdefinierten Post-Typen, sogar in der Seitenleiste. Ich kann post (oder Seiten oder cpt) Titel, Inhalt, Taxonomien und benutzerdefinierte Meta für Galerie Details verwenden.
  • Ich kann das vorgestellte Bild einfach als Titelbild für die Galerie verwenden.
  • Fotos können zu verschiedenen Taxonomien und damit zu verschiedenen Galerien gehören, ohne sie mehrfach hochladen zu müssen oder Bildinformationen mehrfach hinzufügen zu müssen.
  • Alle functionen werden nur über die wp-corefunktionen implementiert: solide und zukunftssicher!

Ein großer Teil meines Workflows wird durch die Shortcode-function erledigt, die in etwa so aussieht:

 add_shortcode( 'gallery_term', 'show_gallery_term' ); function show_gallery_term( $atts ) { extract( shortcode_atts( array( 'tax' => 'media-tag', // this is the name of taxonomy registered by my plugin 'tags' => '', 'qv' => '', // query vars 'template' => 'gallery.php', 'item_template' => 'gallery-item.php', 'wrap' => 1, 'wrap_class' => 'gallery-wrap', 'class' => 'gallery', 'item_class' => 'gallery-item', 'th_size' => 'thumb', 'link' => 1, 'link_size' => 'full', 'link_rel' => '', 'permalink' => '' ), $atts ) ); // parse query vars $qv = wp_parse_args($qv, 'order_by=menu_order&posts_per_page=-1&post_mime_type=image/jpeg,image/gif,image/jpg,image/png'); // force some query vars $qv['post_type'] = 'attachment'; $qv['post_status'] = 'inherit'; $qv['paged'] = get_query_var('paged') ? : 1; // the taxonomy query if ( $tax && in_array( $tax, get_object_taxonomies('attachment')) && ! empty($tags) ) { $qv['meta_query'] = array( array( 'taxonomy' => $tax, 'field' => 'slug', 'terms' => $tags, 'operator' => 'IN' ) ); } $images = new WP_Query($qv); if ( $images->have_posts() ) { $template = apply_filters('def_gallery_template', $template); global $gallery_query, $gallery_atts; $gallery_query = $images; $gallery_atts = $atts; ob_start(); if ( ! locate_template($template, true, false) ) { // use a template file to display gallery if ($wrap) echo '
'; echo ''; if ($wrap) echo '
'; } unset($gallery_query, $gallery_atts); wp_reset_postdata(); return ob_get_clean(); } }

Diese function bietet enorme Flexibilität, in der Tat:

  • Ich kann die Datei gallery.php im aktuellen Thema verwenden, um meine Galerie auszugeben (mit der globalen Variable $gallery_query ). Wenn ich eine andere Vorlage verwenden möchte, kann ich sie über den Shortcode-Parameter oder über einen Filter ändern .
  • Es ist möglich, keine Vorlage für alle Galerien zu verwenden, sondern eine Vorlage für jedes Galerieelement zu verwenden. Der Standard ist gallery-item.php aber wieder kann ich es per Kurzwahl oder über Filter ändern. Mit dieser Vorlage können Sie auf den Attachment-Post in der globalen $ post -Variable zugreifen, sodass alle Template-Tags funktionieren
  • Möglich ist auch, dass Sie überhaupt keine Vorlage verwenden und die function html ausgeben lassen. In diesem Fall lassen viele Optionen den resultierenden HTML-Code konfigurieren.
  • Wenn man faul ist, kann man shortcode wie [gallery_term tag="atag"] : [gallery_term tag="atag"] und keine Template-Datei erstellen … es funktioniert!
  • Der Workflow ist JavaScript-agnostisch: Im Theme ist es möglich das gewünschte Skript in die Warteschlange zu stellen. Möchte Thema und Chang Skript ändern: überhaupt kein Problem!