Kann ich einige Standardseiten festlegen, die bei jeder Erstellung eines neuen Blogs erstellt werden?

Die Seiten wie “about” werden automatisch erstellt, wenn ein neues Blog erstellt wird. Ebenso brauche ich einige andere Seiten, die automatisch erscheinen sollen, wenn ein Blog unter meinen Multisites erstellt wird.

Wie kann ich die Standardseiten konfigurieren, die mit einem neuen Blog unter einer Multisite erstellt werden sollen?

Zum Beispiel: Wenn ich eine Multisite auf example.com . Jeder Blog, der unter dieser Site erstellt wird, sollte Home, About, My store, My address haben.

Solutions Collecting From Web of "Kann ich einige Standardseiten festlegen, die bei jeder Erstellung eines neuen Blogs erstellt werden?"

Ich empfehle, in der Datei functions.php eine function zu erstellen, die mit dem Aktionshaken activate_blog . Verwenden Sie die WordPress-functionen get_pages (), um zu sehen, ob Ihre Standard-Seiten existieren. Wenn nicht, erstellen Sie sie mit 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 ); } } 

Um diese function auf Ihrer eigenen Website zu testen, versuchen Sie, den Hook auf wp_head zu wp_head . Es wird auf jeder Seite geladen und fügt die nicht existierenden Seiten mit dem Inhalt in $ my_post [‘post_content’] ein. * Wird der Haken ‘activate_blog’ ausgeführt, wenn Blogs in einem Kontext mit mehreren Sites erstellt werden? Ich weiß es nicht.*

Eine vollständige Liste der verfügbaren Standardparameter finden Sie auf der Codex-Seite für wp_insert_post, mit der ich verlinkt habe.

Verwenden Sie “wpmu_activate_blog” anstelle von “activate_blog”. es hat für mich funktioniert. Vielen Dank