Die Verwendung von Jetpack Portfolio Project im untergeordneten WordPress-Theme ruft keine benutzerdefinierte Archivvorlage auf

Lesezeit: 2 Minuten

Ich habe ein untergeordnetes Thema, das den neuen benutzerdefinierten Beitragstyp Jetpack Portfolio Project verwendet, und möchte die Datei archive.php ändern, um benutzerdefinierte Ergebnisse anzuzeigen.

Ich verwende: WordPress v3.9.2; Thema: Kind von Punkt, Jetpack wird mit aktivierten benutzerdefinierten Inhaltstypen und ausgewählten Portfolio-Projekten in den Einstellungen installiert. (Es werden keine anderen Plugins installiert, die Portfoliofunktionen implementieren.)

Laut Kodex:

Vorlagendateien

Auf die gleiche Weise können einzelne Beiträge und ihre Archive mit den Vorlagendateien single.php bzw. archive.php angezeigt werden,

  • einzelne Beiträge eines benutzerdefinierten Beitragstyps verwenden single-{post_type}.php
  • und ihre Archive verwenden archive-{post_type}.php
  • und wenn Sie diese Beitragstyp-Archivseite nicht haben, können Sie BLOG_URL?post_type={post_type} weitergeben

wobei {post_type} das Argument $post_type der Funktion register_post_type() ist.

Mein Verständnis ist, dass WordPress diese Dateien automatisch anstelle von single.php bzw. archive.php verwendet, wenn Sie Dateien namens single-jetpack-portfolio.php und archive-jetpack-portfolio.php innerhalb des untergeordneten Designs erstellen.

Mein untergeordnetes Thema ruft jedoch erfolgreich single-jetpack-portfolio.php auf, ignoriert jedoch vollständig archive-jetpack-portfolio.php und ruft stattdessen archive.php im untergeordneten Element auf.

Ich stecke fest für eine Lösung.

Aus dem obigen Codex führt das Hinzufügen zur URL „?post_type=jetpack-portfolio“ dazu, dass das untergeordnete Thema archive-jetpack-portfolio.php korrekt verwendet, aber sollte ich jede einzelne URL manuell ändern müssen, um dies explizit anzugeben? Sollte WordPress dies nicht automatisch erkennen, wie es bei der Datei single-jetpack-portfolio.php der Fall ist? Wie kann ich das lösen?

Ich habe versucht:

  • Zurücksetzen der Permalinks, falls es damit zusammenhängt (Ändern der Option in den Einstellungen und Speichern und wieder zurück)
  • Hinzufügen einer archive.php-Datei zum Kind zusätzlich zu archive-jetpack-portfolio.php (ich hatte anfangs keine archive.php im Kind, also wurde die archive.php des Elternteils verwendet)
  • Veröffentlichen eines neuen Jetpack-Portfolioprojekts und Aktualisieren einer vorhandenen Seite (ich habe irgendwo gelesen, dass das Veröffentlichen von etwas WordPress veranlassen könnte, die Änderungen zu sehen)

Vielen Dank im Voraus für jede Hilfe.

Ich hatte das gleiche Problem, das vom OP beschrieben wurde. Als ich mydomain.com/portfolio besuchte, wurde die benutzerdefinierte Archivvorlage verwendet. Als ich versuchte, einen Projekttyp anzuzeigen, wurde standardmäßig die reguläre archive.php angezeigt. Ich frage mich, ob OP eine Projekttypseite angezeigt hat, ohne es zu merken.

Meine Lösung bestand darin, eine Taxonomie-Vorlagendatei zu erstellen. Nachdem ich damit herumgespielt hatte, fand ich das heraus

  • taxonomie.php
  • taxonomy-jetpack-portfolio-type.php
  • taxonomy-jetpack-portfolio-type-{name-of-project-type}.php

alles funktionierte korrekt, je nachdem, wie spezifisch Sie werden wollten.

Weitere Informationen finden Sie im WordPress-Codex: http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

Hoffe, das hilft jemandem.

Daran werde ich die nächsten Tage arbeiten.

Das sollten Sie beim Kind ausprobieren archive.php erste Zeilen:

<?php
    if( is_post_type_archive('jetpack-portfolio') )
        get_template_part('content', 'jetpack-portfolio');

    elseif( is_tax('jetpack-portfolio-type') || is_tax('jetpack-portfolio-tag') )
        get_template_part('archive', 'jetpack-portfolio');

    else continue;
?>

1345720cookie-checkDie Verwendung von Jetpack Portfolio Project im untergeordneten WordPress-Theme ruft keine benutzerdefinierte Archivvorlage auf

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy