it-swarm.com.de

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

Die Seiten wie "about" werden automatisch erstellt, wenn ein neues Blog erstellt wird. Ebenso benötige ich einige andere Seiten, die automatisch angezeigt werden 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 habe. Jeder Blog, der unter dieser Site erstellt wird, sollte über "Startseite", "Info", "Mein Geschäft" und "Meine Adresse" verfügen.

6
user391

Ich empfehle, in der Datei functions.php eine Funktion zu erstellen, die mit dem Aktions-Hook activate_blog verknüpft ist. Verwenden Sie die WordPress-Funktionen get_pages () , um festzustellen, ob Ihre Standardseiten vorhanden sind. Wenn dies nicht der Fall ist, 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 Funktion auf Ihrer eigenen Site zu testen, setzen Sie den Hook auf wp_head. Es wird bei jedem Seitenladen ausgeführt und fügt die nicht vorhandenen 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.*

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

12
kevtrout

benutze "wpmu_activate_blog" anstelle von "activate_blog". es hat bei mir funktioniert. Vielen Dank

2
user2325