Ist es möglich, eine "Dummy" -Seite einzurichten - nur einen Seitentitel, der in der Seitenliste angezeigt wird, und eine Seite, die nicht bearbeitet werden kann und keinen Slug enthält?
Dies ist eher eine hypothetische Frage, da ich nicht weiß, wo ich mit Code beginnen oder den besten Weg bestimmen soll.
Ich möchte die Option haben, eine solche übergeordnete / untergeordnete Hierarchie in der Seitenliste so einzurichten, dass die untergeordneten Seiten unter die übergeordnete Seite fallen, aber die übergeordnete Seite ist nur ein Platzhalter und keine echte Seite.
Der Grund: Für Benutzer ohne viel Erfahrung in WordPress ist es hilfreich, Seiten in einer übergeordneten / untergeordneten Hierarchie zu organisieren - insbesondere wenn viele Seiten vorhanden sind -, damit verwandte Seiten in der Seitenliste besser organisiert sind. Benutzer können auch das Erstellen eines Menüs visualisieren, wenn untergeordnete Seiten unter einem übergeordneten Element organisiert sind. Das Problem ist, dass die übergeordnete Seite bearbeitet werden kann und nicht Teil des festgelegten Seiteninhalts ist. Nach meiner Erfahrung führt dies zu Verwirrung bei den Benutzern.
Ich kann eine Funktion verwenden, um den Editor für eine bestimmte Seite zu entfernen und Entires in robots.txt zu verwenden, um das Dummy-Elternteil nicht zu indizieren, aber das bedeutet, diese für ein neues Elternteil zu ändern. Und diese übergeordnete Seite hat immer noch eine Schnecke, auch wenn sie mit Witz blockiert ist
Gibt es also eine Möglichkeit, eine Funktion zu erstellen, die einen Seitentitel erstellt und untergeordnete Seiten zuweisen kann, die übergeordnete Seite jedoch nicht geöffnet, nicht bearbeitet und nicht mit einem Slug versehen werden kann?
quelle
'rewrite' => array('slug' => 'false'
für das CPT zu setzen oder es auf/
oder#
, einen Versuch wertAntworten:
OK, hier ist mein Versuch, es ist ziemlich hackig und am Ende konnte ich den Link / die Farbe des übergeordneten Elements nicht entfernen, aber der übergeordnete Link wird nicht funktionieren. Also funktioniert es irgendwie.
Erstellen Sie zunächst ein CPT mit den folgenden Parametern:
Füllen Sie den Rest nach Bedarf aus. Auf diese Weise können Sie einen übergeordneten Beitrag / eine übergeordnete Seite erstellen, die im Administrator, jedoch nicht im Front-End angezeigt wird. Außerdem können übergeordnete Funktionen über aktiviert werden
page-attributes
.Jetzt können wir einen Filter einfügen, der die kleinen Links "Bearbeiten", "Anzeigen" und "Papierkorb" für das übergeordnete Element entfernt.
Jetzt wird es etwas unkonventionell, die übergeordnete Titellinkfunktion zum Bearbeiten des Beitrags zu entfernen.
Jetzt sollten übergeordnete Elemente des CPT nicht über Links im Administrator bearbeitet werden können. Es wird angezeigt, aber die untergeordneten Elemente
edit.php?post_type=parent#
sind in Ordnung.Der Nachteil ist, dass das übergeordnete Element immer noch ein blauer Link anstelle von schwarzem Text ist. Ich konnte keine einfache Möglichkeit finden, den Link aus dem Titel zu entfernen oder benutzerdefiniertes CSS hinzuzufügen, um dies über Javascript zu tun, ohne das zu erweitern
WP List Table
.Sie können den übergeordneten Titel natürlich mithilfe des
the_title
Filters ändern , aber selbst wenn Sie ihnNULL
über die obige Bedingung einstellen, wird weiterhin a angezeigt< a href=..>
Es könnte auch eine einfachere Möglichkeit geben, dies alles nur mit dem
is_post_type_hierarchical
Filter zu tun .Github-Link zum Tabellenklassencode für den Titel.
quelle