Laden einer Vorlage für ein URL-Muster

Ich erstelle Galerieseiten für benutzerdefinierte Posts und Events für csr-events.

Jetzt hat es drei Arten von Seiten:

  1. www.beispiel.de/galerie
  2. www.example.com/gallery/events
  3. www.example.com/gallery/csr-ereignisse

Ich habe mit wp_insert_post programmatisch Seiten für die obigen Slugs erstellt: Beispiel für Events-Galerie:

wp_insert_post( array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_author' => 1, 'post_parent' => $page['parent'], 'post_name' => $page['slug'], 'post_title' => $page['title'], 'post_status' => 'publish', 'post_type' => $page['post-type'], 'page_template' => $page['template'], ) ); 

Die Seitennamen sind also Galerie, Ereignisse und CSR-Ereignisse.

Ich habe Galerie als eine übergeordnete Seite und Ereignisse und csr-Ereignisse als Kind der Galerie eingestellt.

Und dann in der template-gallery.php überprüfe ich die $wp_query->query_vars['pagename'] die mir Galerie oder Ereignisse oder csr-Ereignisse gibt. Und basierend darauf schreibe ich eine Abfrage, um Bilder zu bekommen.

Ich habe eine Archivliste für diese 3 Galerieseiten erstellt, indem ich einige Änderungen in diesem Plugin vorgenommen habe, die URL in diesem Format zurückgeben:

  1. http://www.example.com/gallery/2015/09
  2. http://www.example.com/gallery/events/2015/08
  3. http://www.example.com/gallery/csr-events/2015/09
  4. Für andere Archivseiten mit benutzerdefiniertem Post-Typ wird Folgendes zurückgegeben: http://www.example.com/events/2015/09

und ich habe Änderungen in der Rewrite-Regel des Plugins vorgenommen, die für andere benutzerdefinierte Post-Typen funktioniert, aber nicht für Galerieseiten funktioniert:

 $line_separated = implode( '|', $post_types );//works for events/ $newrules['(' . $line_separated . ')/(\d*)/(\d*)$'] = 'index.php?post_type=$matches[1]&m=$matches[2]$matches[3]'; 

Welche Regel zum erneuten Schreiben sollte ich hier verwenden, damit http://www.example.com/gallery/events/2015/08 funktioniert?

Ich habe es versucht

 $newrules['gallery/events/(\d*)/(\d*)$'] = 'index.php?pagename=events&m=$matches[1]$matches[2]'; 

aber es lädt nur gallery / events und entfernt das Jahr und den Monat. Mit welcher rewrite-Regel kann ich die Event-Seite laden und die URL beibehalten, so dass ich Jahr und Monat in m .

Hinweis: Galerie ist hier kein benutzerdefinierter Beitragstyp. Es ist nur eine Seite.

Solutions Collecting From Web of "Laden einer Vorlage für ein URL-Muster"

Um den besten zu verwendenden Filter zu bestimmen, müssen Sie bestimmen, was diese Seiten sind. Ist is_page() wahr? Verwenden Sie den Filter page_template . Ist is_post_type_archive() wahr? Verwenden Sie den Filter archive_template .

Alle Abfragetyp-spezifischen Vorlagenfilter sind hier aufgelistet .

Sie können auch das generische template_include , das für alle Typen ausgetriggers wird.

Innerhalb eines dieser Filter können Sie die gleichen Bedingungen überprüfen, die Sie benötigen, um zu bestimmen, ob Sie die template-gallery.php laden template-gallery.php .