___ qstnhdr ___ Wordpress benutzerdefinierte Post-Typ-Hierarchie und Menü-Hervorhebung (current_page_parent)
___ answer3270171 ___
Es scheint, dass dies ein Problem mit dem Kern-Wordpress-Code ist; Der Code, der die Menüklassen generiert, fügt Ihrer Blogseite überall current_page_parent hinzu, außer wenn statische Seitenvorlagen angezeigt werden.
(Dies wurde beiläufig in Ссылка besprochen.)
Sie können dies jedoch mit benutzerdefiniertem Code umgehen, indem Sie den Filter page_css_class verwenden. Fügen Sie beispielsweise functions.php etwas hinzu (nicht 100% getestet):
%Vor%
Ersetzen Sie 57 natürlich durch die ID Ihrer Portfolioseite. Dadurch wird current_page_parent beim Drucken der Blogseite entfernt und current_page_parent wird zu Ihrer Portfolioseite hinzugefügt, wenn entweder ein einzelnes Portfolio angezeigt oder die Portfolioseite selbst angezeigt wird.
___ answer14901749 ___
___ antwort18744237 ___
Hier ist meine optimierte / erweiterte Version der zuvor vorgeschlagenen Lösungen, die fast vollständig automatisiert ist. Keine zusätzlichen CSS- oder Menüattribute erforderlich.
Diese Version ruft dynamisch eine Liste mit benutzerdefinierten Post-Typen ab. Wenn der aktuelle Post-Typ ein benutzerdefinierter Post-Typ ist, wird die Klasse 'current_page_parent' aus allen Menüelementen entfernt.
Außerdem prüft es jeden Menüeintrag, um zu sehen, ob es für eine Seite mit einer Seitenvorlage wie "page- {custom_post_type_slug} .php" ist, und wenn ja, wird die Klasse "current_page_parent" hinzugefügt.
Die Filterpriorität ist 1, da einige Themes den aktuellen_Seiten_Parent / etc ersetzen. Klassen mit einer Klasse wie 'aktiv' (zB 'roots' tut dies), also muss dieser Filter zuerst ausgeführt werden.
Zuletzt verwendet es 3 statische Variablen, da diese Funktion wiederholt aufgerufen wird und diese (offensichtlich) durch alle Aufrufe gleich bleiben.
%Vor%
PS. Nur um ein Manko in allen Nicht-CSS-Lösungen aufzuzeigen, die ich bisher gesehen habe, einschließlich meiner eigenen:
Etwas, das nicht berücksichtigt wird, ist das Hervorheben des Menüpunktes Elternteil / Vorfahre eines Gegenstandes, der mit einer Seite verknüpft ist, die Posts des aktuellen benutzerdefinierten Posttyps anzeigt. Betrachten Sie einen benutzerdefinierten Beitragstyp "Produkt" und ein Menü wie:
%Vor%
"Produkte" ist eine Seite mit einer Vorlage "page-product.php" und zeigt eine Übersicht der Beiträge vom Typ "Produkt". Es wird aufgrund der veröffentlichten Lösung hervorgehoben. Allerdings sollte "Unternehmen" als Eltern / Vorfahr ebenfalls hervorgehoben werden, ist es aber nicht. Etwas zu beachten.
___ tag123menu ___ Ein Menü ist ein Benutzerschnittstellenmechanismus, der dem Benutzer die Möglichkeit bietet, Anwendungsvorgänge anzuzeigen und auszuführen. (Generisch; bitte verwenden Sie stattdessen Plattform- und / oder Sprachtags, wenn möglich)
___ tag123wordpress ___ Dieses Tag ist für programmierspezifische Fragen im Zusammenhang mit dem Content-Management-System WordPress. Fragen zur Theme-Entwicklung, WordPress-Administration, Best Practices für die Verwaltung und Serverkonfiguration stehen hier außer Frage und werden am besten bei Stack Exchange WordPress Development gestellt.
___ answer4408816 ___
Ich habe mich mehr umgesehen und einen anderen Weg gefunden, dies zu tun.
%Vor%
}
Ich habe Hilfe von diesem Beitrag erhalten und dann geändert, um auch die "current_page_parent" -Klasse von der Blog-Seite zu entfernen.
Ссылка
Herzlich
Vayu
___ tag123highlight ___ steht für Fragen, bei denen Text oder andere visuelle Elemente hervorgehoben werden.
___ tag123customposttype ___ Ein benutzerdefinierter Inhaltstyp für das Open Source CMS System WordPress.
___ answer15594737 ___
Hier ist eine Lösung, die für mich funktioniert hat, ohne dass ich meinen benutzerdefinierten Beitragstyp oder Menü-ID oder Seiten-ID im Code definieren muss:
Ссылка
%Vor%
___ tag123hierarchical ___ Für Probleme beim Anordnen von Daten und / oder Ressourcen in einer Hierarchie.
___ qstntxt ___
Ich habe einen benutzerdefinierten Post-Typ von "Portfolio" und Seite mit einer Vorlage erstellt, die alle Posts abruft, die mit diesem benutzerdefinierten Post-Typ übereinstimmen.
Das Problem ist, wenn ich in den eigentlichen Beitrag drillt, scheint der Beitrag unter "Blog" im Hauptmenü zu markieren (zeigt current_page_parent als Klasse)
Die Permalink-URL ist korrekt: www.site.com/portfolio/post-slug
Aber das Menü denkt, dass der Elternteil "Blog" ist.
Dies ist offensichtlich ein hierarchisches Problem, aber ich weiß nicht, was ich tun soll, um es zu beheben.
___