X

Comment créer une page lors de l'activation du thème

Extraits par IsItWP

Vous cherchez un moyen de créer automatiquement une ou plusieurs nouvelles pages lors de l'activation d'un thème ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour créer une nouvelle page dans WordPress.

Si vous souhaitez que votre thème ou plugin crée une nouvelle page (ou deux ou trois) de manière autonome, voici un code rapide pour le faire. wp_insert_post renvoie l'ID de la page nouvellement créée. En cas d'erreur, il renverra 0 si $wp_error est défini sur false, ou un objet WP_Error si $wp_error est défini sur true.

Instructions :

Tout ce que vous avez à faire est d'ajouter ce code au fichier index.php de votre thème, avant le hook.

Et bien sûr, ce code pourrait être utilisé pour créer un POST ou tout autre contenu de type de publication personnalisé simplement en modifiant la valeur de post_type.

<?php
$new_page = array(
	'slug' => 'this-is-my-new-page',
	'title' => 'Write a Headline that Captivates',
	'content' => "Enter the body Content for your Page here"
);
$new_page_id = wp_insert_post( array(
	'post_title' => $new_page['title'],
	'post_type' 	=> 'page',
	'post_name'	 => $new_page['slug'],
	'comment_status' => 'closed',
	'ping_status' => 'closed',
	'post_content' => $new_page['content'],
	'post_status' => 'publish',
	'post_author' => 1,
	'menu_order' => 0
));
?>

Ou, vous pourriez utiliser ce code à la place. Cet extrait vérifie si une page avec le titre à la ligne 3 existe déjà, et crée la page si elle n'existe pas encore. Il définit également un modèle de page si un modèle de page est donné à la ligne 5.

Tout ce que vous avez à faire est d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :

if (isset($_GET['activated']) && is_admin()){
 
    $new_page_title = 'This is the page title';
    $new_page_content = 'This is the page content';
    $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template.
 
    //don't change the code bellow, unless you know what you're doing
 
    $page_check = get_page_by_title($new_page_title);
    $new_page = array(
        'post_type' => 'page',
        'post_title' => $new_page_title,
        'post_content' => $new_page_content,
        'post_status' => 'publish',
        'post_author' => 1,
    );
    if(!isset($page_check->ID)){
        $new_page_id = wp_insert_post($new_page);
        if(!empty($new_page_template)){
            update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
        }
    }
 
}

Note : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur comment ajouter correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.

Si vous avez aimé cet extrait de code, veuillez envisager de consulter nos autres articles sur le site tels que : 27 meilleurs thèmes WordPress pour les blogs de voyage et comment sécuriser vos formulaires WordPress.

Commentaires   Laisser une réponse

  1. Suman Samanta March 3, 2019 at 5:37 am

    Si je devais donner un exemple parfait de contenu de grande qualité, cet article en serait un. C'est un matériel bien écrit qui maintient votre intérêt.

  2. Merci. J'en ai exactement besoin. Faites-moi savoir avec quel hook ce code devrait être accroché ?

  3. Merci mec ! Avez-vous une solution pour insérer automatiquement des taxonomies ?

  4. Bonjour, dans mon plugin, la page est générée automatiquement et le shortcode aussi. Je veux que sur la page détaillée, il n'y ait pas besoin d'afficher l'en-tête, le pied de page et la barre latérale... une idée s'il vous plaît ?

  5. Salut Kevin. Comment créer plusieurs pages avec cette méthode ? Merci..

  6. Je ne suppose pas qu'il y ait un moyen de diriger les utilisateurs vers la page après l'activation, quelle que soit l'URL permanente qu'ils ont définie, n'est-ce pas ?

    Je voulais utiliser cela pour créer une page FAQ de thème et y diriger l'utilisateur après l'activation.

    1. Je ne pense pas que ce soit la meilleure façon de faire les choses. Ce que vous pourriez faire, c'est créer une page d'administration, un peu comme les gens le font lorsqu'ils créent un plugin, et y ajouter votre FAQ ou d'autres détails. Ce tutoriel sur net.tuts donne des détails sur la création du panneau d'administration pour un plugin, mais l'idée est la même.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

      1. Oui, vous avez probablement raison. J'utilise un thème enfant pour Twenty Eleven et je n'ai pas encore trouvé comment me connecter aux options du thème actuel. Je vais probablement juste créer une page html avec les informations dont j'ai besoin et y faire un lien, mais je vais vérifier ce lien, merci

        1. Salut Zeaks,

          Le tutoriel que j'ai posté devrait fonctionner correctement ! Peu importe le thème que vous utilisez, le code du tutoriel vous demandera simplement d'ajouter du code à votre fichier functions.php pour créer le panneau d'administration, puis il s'agira simplement de HTML pour styliser et afficher votre FAQ ou d'autres informations.

    2. Je ne pense pas que ce soit la meilleure façon de faire les choses. Ce que vous pourriez faire, c'est créer une page d'administration, un peu comme les gens le font lorsqu'ils créent un plugin, et y ajouter votre FAQ ou d'autres détails. Ce tutoriel sur net.tuts donne des détails sur la création du panneau d'administration pour un plugin, mais l'idée est la même.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

  7. Génial ! Un grand merci !
    J'ai juste utilisé votre code pour ajouter des éléments de menu également.
    (‘post_type’ => ‘nav-menu-item’)

    1. Salut Tyson, Cool, content d'avoir pu aider. N'oubliez pas de me suivre sur Twitter, Facebook ou RSS, je publie régulièrement de nouveaux extraits.

  8. Cliff Paulick July 19, 2011 at 6:56 pm

    Désolé si c'est une question stupide, mais pourquoi voudriez-vous faire cela ?
    J'ai une installation WP de test où je crée manuellement un nouveau post (ou parfois une page) chaque fois que j'active un nouveau plugin – pour tester ce qu'il peut faire. Je vois l'avantage d'un générateur de page/post pour cette action, mais je ne suis pas sûr pourquoi une nouvelle page pour l'activation d'un thème. Aidez-moi à comprendre. Merci !

    1. Il n'y a pas de question stupide sur wpsnipp, c'est une bonne question. Disons que j'ai un nouveau thème qui fonctionnera davantage comme un CMS avec une page d'accueil statique par défaut. Vous pourriez l'utiliser dans votre thème pour créer les pages nécessaires à la personne plutôt que de lui demander de le faire manuellement. De cette façon, je pourrais créer n'importe quel nombre de pages nécessaires pour un thème que je créais, puis tout ce que la personne aurait à faire serait de lier les pages aux modèles requis. Mais ce n'est qu'un exemple, il pourrait y avoir des raisons auxquelles nous ne pouvons même pas penser.

      1. Comment ajouter cette nouvelle page créée par votre code dans le menu principal. ('post_type' => 'nav-menu-item') ne fonctionne pas pour moi

    2. C'est un peu ancien, mais pour moi, je crée un thème et je configure une page personnalisée qui créera un plan du site, et je veux lier ce plan du site dans le pied de page.

      C'est un excellent morceau de code, il me fait savoir avec certitude que cette page de plan du site sera là tout le temps.

  9. Tweets that mention Wordpress Create page on theme activation – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com November 24, 2010 at 4:32 pm

    […] Ce post a été mentionné sur Twitter par wp_freak, WPSNIPP. WPSNIPP a dit : #wordpress Créez une page lors de l'activation du thème http://bit.ly/gTZHVl #blog s'il vous plaît RT :) […]

Ajouter un commentaire

Nous sommes ravis que vous ayez choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi l'eBook gratuit !