Wie kann ich eine Entwurfsseite als übergeordnetes Element festlegen, ohne sie zu veröffentlichen?

7

Kennt jemand einen Weg, um das zu umgehen?

http://wordpress.org/support/topic/set-draft-page-as-parent

Ich kann nicht riskieren, dass ein öffentlich zugängliches System regelmäßig von derselben Installation aktualisiert wird.

Codecowboy
quelle
Ich verstehe nicht, warum Sie eine nicht öffentliche übergeordnete Seite haben möchten. Die Seitenhierarchie hat nur dann eine eindeutige Bedeutung, wenn sie öffentlich ist. Wenn Sie dies für assoziative Zwecke wünschen, würde ich eine benutzerdefinierte hierarchische Taxonomie erstellen und diese zum Verknüpfen Ihrer nicht öffentlichen Daten verwenden (Sie könnten sie sogar als "privat" anstelle von "Entwurf" markieren).
John P Bloch
2
@ John: Ich fand das ein Problem, als ich sowohl eine übergeordnete Seite als auch untergeordnete Seiten gleichzeitig erstellen wollte.
e100
1
@ John Genau das, was e100 gesagt hat - beim Versuch, vor dem Veröffentlichen eine Hierarchie von Seiten in Entwurfsform aufzubauen. Wirkt sich möglicherweise nicht auf eine kleinere WP-Site aus, ist aber definitiv ein Problem bei größeren Sites, bei denen viele Inhalte gleichzeitig geändert werden.
Nickb

Antworten:

16

Das funktioniert bei mir:

add_filter('page_attributes_dropdown_pages_args', 'my_attributes_dropdown_pages_args', 1, 1);

function my_attributes_dropdown_pages_args($dropdown_args) {

    $dropdown_args['post_status'] = array('publish','draft');

    return $dropdown_args;
}
user44052
quelle
1
Bitte fügen Sie Ihrer Antwort eine Erklärung hinzu, in der erläutert wird, wie das Problem gelöst wird.
Maruti Mohanty
Schöne (und offensichtliche) Lösung. Der Filter kam mit Version 3.3 Ich denke: github.com/WordPress/WordPress/blob/3.3-branch/wp-admin/…
David
1
Das ist die Lösung.
kjetilh
1
einfache Lösung für einen Fehler, der seit mindestens 4 Jahren besteht: wordpress.org/ideas/topic/…
Q Studio
Falls Sie interessiert sind, eine Erklärung dieses Codes: Sie würden dies in functions.php in Ihrem Design einfügen, um den WordPress-Editor so zu ändern, dass das Dropdown-Menü mit der Liste möglicher übergeordneter Seiten sowohl Seiten zum Veröffentlichen als auch zum Entwerfen enthält.
Philip Jones
3

Es gibt einen Weg, dies zu tun, aber es ist irgendwie wackelig. Anstatt die Seite nicht zu veröffentlichen, können Sie den Inhalt ausblenden.

Erstellen Sie eine Themenvorlage mit dem Namen HidePageTemplate.php. Ändern Sie auf der Seite, die Sie ausblenden möchten, Ihre Vorlagendatei in die von Ihnen benannte Vorlage. Kopieren Sie in der Vorlage die Struktur der 404-Seite. Auf diese Weise wird die Seite veröffentlicht, sodass die untergeordneten Seiten veröffentlicht werden, der Inhalt jedoch nicht sichtbar ist.

/ * Vorlagenname: Seitenvorlage ausblenden * / get header 404-Not Found get sidebar get footer

Eileencodes
quelle
Danke Eileen. Leider müssen wir die Vorlagen so einstellen, dass sie in die richtigen benutzerdefinierten Felder zum Erstellen des Inhalts geladen werden (die Site verwendet benutzerdefinierte Feldvorlagen). Wenn es nach mir ginge, würden wir benutzerdefinierte Feldvorlagen entfernen, aber das ist im Moment keine Option.
Codecowboy
Ich glaube, ich verstehe nicht ganz, was Sie tun müssen. Ich habe dieses Plugin noch nie benutzt. Vielleicht, wenn Sie besser erklären könnten, was die "versteckte" übergeordnete Seite tun soll. Würde der Inhalt von / about nicht auf / about, sondern auf / about / our-team erscheinen? Sie können weiterhin den gesamten Inhalt der / about-Seite auf eine beliebige Seite abfragen. Vielleicht hilft dies auch, wenn Sie versuchen, Ihre eigenen benutzerdefinierten Felder zu erstellen. Vielleicht löst dies das Problem. Der Link, den ich dazu verwendet habe, ist hier sltaylor.co.uk/blog/control-your-own-wordpress-custom-fields
eileencodes
Hat das überhaupt geholfen?
Eileencodes
Dies ist keine großartige Lösung, wenn Sie den Beitrag vollständig geheim halten möchten. Wenn Ihr Beitrag bei einer Suche abgerufen wird, wird zumindest der Auszug ausgedruckt.
John P Bloch
0

Ich stehe vor dem gleichen Problem, und die einzige Lösung, die ich mir vorstellen kann, ohne mich vor Inhalten verstecken oder die PHP bearbeiten zu müssen (wie zuvor vorgeschlagen), ist folgende:

Erstellen Sie alle Seiten als Entwürfe. Sobald sie zur Veröffentlichung bereit sind, veröffentlichen Sie sie und gehen Sie sofort wieder hinein und ändern Sie die untergeordneten Seiten in die richtige übergeordnete Seite.

user3055527
quelle
-1

Sie können unveröffentlichte Seiten nicht als übergeordnete Seiten (oder als statische Startseite) verwenden.

Ich denke, Eileen hat eine sehr elegante Problemumgehung.

Denis de Bernardy
quelle