Ich versuche, ein Thema zu erstellen, für das bestimmte Seiten enthalten sein müssen. Gibt es eine Möglichkeit, Seiten automatisch zu erstellen und sie ihren Seitenvorlagen zuzuweisen, wenn ein Thema installiert wird?
theme-development
pages
installation
JonnyPlow
quelle
quelle
Antworten:
Der vorherige Link ist defekt. :(
Der Standardweg ist via
wp_insert_post
. Sie erhalten eine Reihe von Informationen zu WP Codex: http://codex.wordpress.org/Function_Reference/wp_insert_postquelle
Ich hatte eine ähnliche Situation, in der ich eine Seite zur Themenaktivierung hinzufügen und automatisch als Startseite festlegen musste.
So habe ich es gemacht:
Hoffe das hilft jemandem.
Aktualisieren:
Danke Maruti Mohanty .
quelle
Das ist schlechte Praxis. Themen dienen der Präsentation, sie sind visuell und sollten nicht den tatsächlichen Inhalt diktieren. Wenn dies der Fall ist, machen Sie es falsch und Ihr Code ist als Plugin besser geeignet.
Sollte Ihr Thema jedoch eine "beabsichtigte" Inhaltsanordnung haben, sollten Sie die Seiten / Inhalte nicht automatisch erstellen, Sie sollten sich überhaupt nicht in den Inhalt des Benutzers einmischen, Sie könnten andere Dinge beschädigen.
Ermöglichen Sie dem Benutzer stattdessen, auszuwählen, welche Seiten verwendet werden sollen. Auf die gleiche Weise können Sie in den Einstellungen eine statische Seite anstelle der neuesten Beiträge auswählen und mit Plugins wie Woocommerce oder Jigoshop auswählen, welche Seite die Checkout-Seite usw. ist Plugins, es ist okay für sie, Seiten auf diese Weise zu erstellen).
In beiden Fällen weist dies auf einen grundlegenden Fehler in Ihrer Herangehensweise an die Erstellung Ihres Themas hin (oder Sie erstellen etwas für einen Kunden und haben beschlossen, die Installation für ihn zu vereinfachen und mehr Arbeit für Sie zu schaffen, während Sie dies besser anbieten sollten Installieren Sie es selbst gegen eine Gebühr, die rentabler wäre.
Sollten Sie dumm genug sein, es trotzdem zu versuchen ...
Siehe http://codex.wordpress.org/Function_Reference/wp_insert_post
Sie müssen jedoch jedes 'init' überprüfen, um festzustellen, ob die Seiten vorhanden sind. Wenn sie sie nicht erstellen und eine Option irgendwo aktualisieren, damit Sie sich daran erinnern, dass sie erstellt wurden, und dies beim nächsten Mal nicht überprüfen, werden bei jedem Laden der Seite mehr Seiten erstellt.
quelle
Verwenden Sie den Code in dieser Antwort und einen, den
wp_insert_post
ich in diesem Thema gefunden habe .quelle