Gibt es eine Möglichkeit (neben dem Hinzufügen eines benutzerdefinierten Links), einem Menü in WordPress ein benutzerdefiniertes Archiv vom Typ Post hinzuzufügen? Wenn es über einen benutzerdefinierten Link hinzugefügt wird (z. B. / cpt-archive-slug /), wendet WordPress keine Klassen wie current-menu-item
das Listenelement an, was beim Gestalten des Menüs eine Herausforderung darstellt.
Wenn der benutzerdefinierte Link die gesamte URL enthält (z. B. http://site.com/cpt-archive-slug/ ), werden diese Klassen hinzugefügt. Dies ist jedoch wahrscheinlich keine „Best Practice“.
quelle
Ich habe die Antwort von Tungd ein wenig erweitert , um diesem Ansatz mehr Großzügigkeit zu verleihen . Diese Implementierung ermöglicht das Hinzufügen beliebiger Zuordnungen zwischen Menü-Makros und internen Wordpress-URLs, die nur dem Backend bekannt sind.
Ich habe auch beschlossen,
!
diese Makros als Präfix zu verwenden, um zu vermeiden, dass sie mit benannten Ankern in Konflikt geraten. Dies beinhaltet einen Overhead, um das 'http: //' von der Link-URL zu entfernen (da Wordpress versucht, diese seltsamen Links zu normalisieren). . Wenn Sie diese Implementierung stört, können Sie denpreg_replace()
Anruf jederzeit entfernen und#
wie zuvor als Linkpräfix verwenden.quelle
Sie können eine Seite erstellen und anschließend eine benutzerdefinierte Archivvorlage darauf anwenden. Ich erstelle und verwende archive- {post-type} .php für den Vorlagennamen, genau wie Sie es für das Standardarchiv tun würden. Ich wende es einfach manuell auf die Seite an.
Wenn Sie dies tun, würde ich empfehlen, Ihr CPT auf has_archive = 'false' zu setzen, um Permalink-Kollisionen zu vermeiden, unabhängig davon, ob Ihre Seite einen anderen Permalink-Slug hat als Ihr CPT-Archiv-Slug.
quelle
Ich bin genau auf das gleiche Problem gestoßen und habe diese Lösung gefunden:
Quelle: http://www.wptavern.com/forum/plugins-hacks/2169-current-page-custom-post-type-archive.html
quelle
Ich denke, ich müsste einen neuen "übergeordneten" Post-Typ erstellen, damit der benutzerdefinierte Post-Typ, den ich anzeigen möchte, zu einem "untergeordneten" Typ wird und dieser Elternteil im Menü aufgeführt wird.
Dies sollte eine Option sein. Das Erstellen eines Dummy-Elternteils, nur um es im Menü aufzulisten, ist zu viel Arbeit.
Ich möchte eine Möglichkeit, dies anhand der Vorlage oder der Funktionen zu tun, damit ich dies nicht in den einzelnen Menüeinstellungen für jede Site in meiner Multisite-Installation tun muss.
quelle
Ich habe diese Antwort gefunden, als ich nach einem ähnlichen Problem gesucht habe. Ich habe gerade den Code in meine Datei finctions.php kopiert und es hat sofort funktioniert :) Ich hoffe, es hilft!
Dynamische Navigation für benutzerdefinierten Beitragstyp (Seiten)
quelle
Anstatt den Link hinzuzufügen, erstelle ich eine leere Seite. Auf dieser Seite füge ich im Editor so etwas wie "Aus cpt-name generierter Inhalt" hinzu, damit mein Kunde weiß, woher all das kommt.
Dann füge ich diese Seite dem Menü hinzu und stelle mit dem folgenden Code sicher, dass sie hervorgehoben wird, wenn archives-cpt oder single-cpt ausgeführt wird.
Dadurch wird nach dem Titel des Menüs / der Seite gesucht und ob tatsächlich das Archiv oder die einzelne Seite eines benutzerdefinierten Beitragstyps angezeigt wird. Wenn dies der Fall ist, wird die aktuelle Menüelementklasse hinzugefügt.
quelle