Zwei single.php Dateien?

Ich habe einen benutzerdefinierten Posttyp “people”. Für jede Person kann ich die folgenden benutzerdefinierten Felder eingeben: “Adresse”, “Beruf” und “Bilder”.

In der single-people.php zeige ich die Adresse und den Beruf an. Außerdem enthält diese einzelne Vorlage eine Galerie-Schaltfläche – wenn der Benutzer der Website darauf klickt, möchte ich den Benutzer auf eine separate Seite führen, auf der nur die Bilder der Person angezeigt werden, die er gerade angesehen hat.

Wie erreiche ich das? Ich kann nicht einfach eine zweite single.php Datei erstellen, oder?

Solutions Collecting From Web of "Zwei single.php Dateien?"

Ich bin ein Fan von Seitenvorlagen – hier ist, was ich tun würde.

Erstellen Sie zuerst eine Seite namens Person Gallery , nennen Sie sie, was immer Sie möchten.

Dann können wir entweder eine separate Vorlage page-person-gallery.php oder unsere page.php öffnen und eine Bedingung in unserer Schleife page.php um zu testen, ob wir die Personen-Galerie-Seite sehen:

 < ?php if(have_posts()) : ?> < ?php while(have_posts()) : the_post(); ?> < ?php if($post->post_name == 'person-gallery') : /** Better to test for ID **/ ?>  < ?php else : ?>  < ?php endif; ?> < ?php endwhile; ?> < ?php endif; ?> 

Egal welche Methode Sie wählen, wir können jetzt eine Abfrage erstellen, die auf dem basiert, was wir über die Person wissen, die gerade nichts ist. Wir müssen einen Link auf Ihrer single.php , der uns ein bisschen mehr Informationen über die Person geben kann. Wenn Sie also Ihre Links zu der person-gallery erstellen, können wir unsere Personen-ID weitergeben. Es sieht ungefähr so ​​aus:

  View Gallery 

Wenn nun jemand auf diesen Link klickt, wird er uns diese Personen-ID geben, auf die wir unsere Anfrage dann stützen können. Lassen Sie uns also unsere Bilder erstellen:

 < ?php if(isset($_GET['person']) && is_numeric($_GET['person'])) { $pesonID = $_GET['person']; $attachments = get_children( array( 'numberposts' => -1, 'post_mime_type' => 'image', 'post_parent' => $personID, 'post_status' => 'any', 'post_type' => 'attachment' ) ); /** Now we can display our images! **/ $attachments = get_children( array( 'numberposts' => -1, 'post_mime_type' => 'image', 'post_parent' => $post->ID, 'post_status' => 'any', 'post_type' => 'attachment' ) ); /** Now we can display our images! **/ foreach($attachments as $imgID => $img){ echo wp_get_attachment_image($imgID); } } else{ echo "

No Images Found.

"; } ?>

Sie können einige Größen und so an wp_get_attachment_image , um den Codex wp_get_attachment_image , was zurückgegeben wird.