Ich habe einen Kunden, dessen Site stark von benutzerdefinierten Beitragstypen Gebrauch macht, um deren Site zu konfigurieren. Aber ich bin zwischen einem Stein und einem harten Ort für ihre angeforderte Homepage.
In Wirklichkeit wird die Homepage ein Stapel spezifischer "Seiten" in WordPress sein. Grundsätzlich gibt es Seiten für: Intro , Blog , Über uns , Portfolio und Kontakt . Sie werden alle übereinander gestapelt, sodass Sie von einer Seite zur nächsten blättern können.
Mein erster Instinkt war, einfach eine Seite ( Home genannt ) zu verwenden und einen Shortcode einzubetten, der Seiten-Slugs akzeptiert und die richtige Reihenfolge ausgibt (dh [pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]
). Die Seite verwendet eine benutzerdefinierte Seitenvorlage, um die Elemente anzuordnen, die Schleife zu steuern und der linken Seite eine Navigation hinzuzufügen. Aber das scheint alles klunkig.
Meine ideale Lösung wäre, einen benutzerdefinierten Beitragstyp ( Stapel ) zu erstellen , der es dem Endbenutzer ermöglicht, die Seiten per Drag-Drop zu positionieren und das CPT für Layout und Navigation usw. zu sorgen.
Das Problem mit meiner idealen Lösung sind Einstellungen. Mit WordPress können Sie eine Seite für die Standardhomepage der Site auswählen. Aber es ist an einen Pfosten Typen gebunden Seite , und ich bin nicht sicher , wo in einzuhaken , das zu ändern , so dass Benutzer auch eine Auswahl könnten Stapel als Standard - Homepage.
Wo kann ich mich anmelden, um der Dropdown-Liste der verfügbaren Seiten für die Standardhomepage einen CPT hinzuzufügen?
post_type
noch nicht gesetzt ist und dass siepage_id
nicht 0 ist) verhindert alle 404s. Ich kann jetzt Abfragen für alle meine benutzerdefinierten Beiträge, alle meine Beiträge und alle meine Seiten ohne Störung ausführen.Vielleicht so? Verfeinerte Version meiner früheren Lösung .
quelle
Warum nicht einfach eine
front-page.php
Vorlagendatei erstellen, die entweder eine normale Abfrage / Schleife verwendet oder (wenn eine benutzerdefinierte Designoption zum Anzeigen des CPT auf der Startseite festgelegt ist) eine benutzerdefinierte Abfrage / Schleife basierend auf dem CPT ausgibt?Das Problem dabei ist, dass Sie eine separate Theme-Option erstellen müssen, um die Ausgabe der Startseite zu steuern, und gleichzeitig Benutzer anweisen müssen, die Startseite auf statische Seite zu setzen.
Zur Vereinfachung können Sie Ihre Theme-Option in das Einstellungslesen einbinden, indem Sie die Optionsgruppe "Lesen" in Ihrem Aufruf
register_setting
über die Settings-API verwenden, damit sie mit den vorhandenen Front-Page-Optionen angezeigt wird.quelle
front-page.php
wird automatisch ausgewählt, da sie Teil der WordPress-Vorlagenhierarchie ist. Sie müssen sich nicht daran erinnern, warum dies geschieht (oder es für die nächste Person notieren).Ich denke, dass sich etwas geändert hat, seit EAMann sein Update 2011 geschrieben hat und die von ihm bereitgestellte Funktion wpa18013_add_pages_to_dropdown () nicht mehr funktioniert. Wie in einem Kommentar von Dameer erwähnt, gibt diese Funktion derzeit (Dezember 2013) den Fehler "Fehlendes Argument 2 für wpa18013_add_pages_to_dropdown ()" aus.
Die Lösung bestand für mich sowieso darin, die Funktion ohne diesen zweiten Parameter neu zu schreiben oder den Inhalt zu überprüfen. Der vollständige Codeblock wird dann zu:
Beachten Sie, dass der benutzerdefinierte Beitragstyp, den ich hinzufüge, im obigen Beispiel "unbox_tabs" und nicht "stack" ist.
quelle
Ich verwende diese Technik , um eine Vorlage aus einem Plugin einzuschließen. Die Lösung von @ ChipBennett trifft also nicht zu.
Um die CPTs ( ) aus dem Plugin in die Liste der statischen Seiten einzufügen, habe ich die @ EAMann-Lösung wie folgt geändert:
'hierarchical' => 'false'
Kernreferenz v3.4.2:
geringfügiger Unterschied der Zeilennummern in 3.5 RC3, Code bleibt jedoch gleich
quelle