J'essaie de construire un thème qui nécessiterait l'inclusion de pages spécifiques. Existe-t-il un moyen de créer automatiquement des pages et de les affecter à leurs modèles de page lorsqu'un thème est installé?
theme-development
pages
installation
JonnyPlow
la source
la source
Réponses:
Le lien précédent est rompu. :(
La voie standard est via
wp_insert_post
. Vous obtenez un tas d'informations sur WP Codex: http://codex.wordpress.org/Function_Reference/wp_insert_postla source
J'ai eu une situation similaire où j'avais besoin d'ajouter une page sur l'activation du thème et de la définir automatiquement comme page d'accueil.
Voici comment je l'ai fait:
J'espère que cela aide quelqu'un.
Mise à jour:
Merci Maruti Mohanty .
la source
C'est une mauvaise pratique. Les thèmes sont destinés à la présentation, ils sont visuels, ils ne devraient pas dicter le contenu réel. S'ils le font, alors vous le faites mal et votre code serait mieux en tant que plugin.
Cependant, si votre thème a un arrangement de contenu `` prévu '', vous ne devez pas créer automatiquement les pages / le contenu, vous ne devriez pas du tout vous mêler du contenu des utilisateurs, vous pourriez casser d'autres choses.
Au lieu de cela, autorisez l'utilisateur à sélectionner les pages à utiliser, de la même manière que les paramètres vous permettent de choisir une page statique au lieu des derniers messages, et comment les plugins comme Woocommerce ou Jigoshop vous permettent de choisir quelle page est la page de paiement, etc. (ce sont plugins, ils peuvent créer des pages de cette façon).
Quoi qu'il en soit, cela indique une faille fondamentale dans votre approche de la construction de votre thème (ou vous créez quelque chose pour un client, et avez décidé de le rendre facile à installer, en créant plus de travail pour vous, alors que vous feriez mieux d'offrir à installez-le vous-même moyennant des frais, ce qui serait plus rentable).
Si vous êtes assez stupide pour essayer de toute façon ...
Reportez-vous à http://codex.wordpress.org/Function_Reference/wp_insert_post
Mais, vous devrez vérifier chaque «init» pour voir si les pages existent. S'ils ne les créent pas et mettent à jour une option quelque part afin que vous vous souveniez qu'ils ont été créés et que vous ne les vérifiez pas la prochaine fois, vous vous retrouverez avec plus de pages créées à chaque chargement de page.
la source
En utilisant le code dans cette réponse et
wp_insert_post
j'ai trouvé dans ce thème .la source