Puis-je configurer quelques pages par défaut à créer à chaque création d'un nouveau blog
-
16-10-2019 - |
Question
Les pages comme « sur » sera automatiquement créé lorsqu'un nouveau blog est créé. De même, je besoin d'autres pages qui devrait apparaître automatiquement quand un blog est créé sous mes multisites.
Comment puis-je configurer les pages par défaut à créer un nouveau blog sous un multisite?
Ex .: Si j'ai un multisite sur example.com
. Chaque blog créé en vertu du présent site doit avoir
Accueil, À propos, Mon magasin, mon adresse.
La solution
Je recommande la création d'une fonction dans votre fichier functions.php que des liens avec le activate_blog
crochet d'action. Utilisez les fonctions WordPress get_pages () pour voir si vos pages par défaut existent. Si elles ne le font pas, les créer wp_insert_post .
add_action('activate_blog','my_default_pages');
function my_default_pages(){
$default_pages = array('About','Home','My Store','My Address');
$existing_pages = get_pages();
foreach($existing_pages as $page){
$temp[] = $page->post_title;
}
$pages_to_create = array_diff($default_pages,$temp);
foreach($pages_to_create as $new_page_title){
// Create post object
$my_post = array();
$my_post['post_title'] = $new_page_title;
$my_post['post_content'] = 'This is my '.$new_page_title.' page.';
$my_post['post_status'] = 'publish';
$my_post['post_type'] = 'page';
// Insert the post into the database
$result = wp_insert_post( $my_post );
}
}
Pour tester cette fonction sur votre propre site, essayez de régler le crochet wp_head
. Il sera exécuté sur chaque chargement de page et insérez les pages qui n'existent pas, avec le contenu en $ my_post [ « post_content »]. * Est-ce que la course de crochet « activate_blog » lorsque les blogs sont créés dans un contexte multi-site? Je ne sais pas. *
Reportez-vous à la page codex pour wp_insert_post que je lié à la liste complète des paramètres par défaut disponibles.
Autres conseils
utilisation "wpmu_activate_blog" au lieu de "activate_blog". il a travaillé pour moi. merci