web-dev-qa-db-fra.com

Pages de code rigide dans un thème pour une installation réseau (multisite)

Je crée un réseau multisite et je cherche un moyen de le créer afin que les nouveaux blogs créés disposent de deux pages standard automatiquement configurées.

Le but de ces pages sera d'afficher les options d'adhésion universelle et d'autres informations que je souhaite que chaque site affiche.

Ainsi, par exemple, je veux que chaque nouveau site ait une page "Rejoindre" et une page "À propos de ce réseau" et je ne souhaite pas avoir à configurer manuellement les pages et leurs modèles personnalisés.

J'utilise Twentyeleven comme base de thème pour mes enfants et je personnalise un thème spécifique devant être utilisé par chacun des utilisateurs de sous-blogs nouvellement créés.

Je suppose qu’une partie de cette question est la suivante: est-il possible de coder en dur des pages dans un thème Wordpress?

Merci beaucoup.

JW

3
jw60660

Accrochez-vous dans wpmu_new_blog et créez vos pages:

add_action('wpmu_new_blog', 'create_my_pages', 10, 2);

function create_my_pages($blog_id, $user_id){
  switch_to_blog($blog_id);

  // not really need, new blogs shouldn't have any content
  if(get_page_by_title('About this Network')) return;

  // create each page
  $page_id = wp_insert_post(array(
    'post_title'     => 'About this Network',
    'post_name'      => 'about-this-network',
    'post_content'   => 'Co za asy...',
    'post_status'    => 'publish',
    'post_author'    => $user_id, // or "1" (super-admin?)
    'post_type'      => 'page',
    'menu_order'     => 666,
    'comment_status' => 'closed',
    'ping_status'    => 'closed',
     // + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
  ));  

  restore_current_blog();
}

Vous pouvez l'insérer dans un plug-in que vous activez sur le réseau ou dans un plug-in indispensable, de cette manière, ils sont disponibles dans tous les thèmes.

Une autre méthode consiste à utiliser template_redirect hook et à inclure vos propres fichiers de modèle.

3
onetrickpony