it-swarm-id.com

Dapatkah saya menetapkan beberapa halaman default yang akan dibuat pada setiap pembuatan blog baru

Halaman-halaman seperti "tentang" akan dibuat secara otomatis ketika blog baru dibuat. Saya juga memerlukan beberapa halaman lain yang akan muncul secara otomatis ketika blog dibuat di bawah multisite saya.

Bagaimana saya bisa mengkonfigurasi halaman default yang akan dibuat dengan blog baru di bawah multisite?

Sebagai contoh: Jika saya memiliki multisite di example.com. Setiap blog yang dibuat di bawah situs ini harus memiliki Beranda, Tentang, Toko saya, Alamat saya.

6
user391

Saya sarankan membuat fungsi di file functions.php Anda yang terkait dengan kait tindakan activate_blog. Gunakan fungsi WordPress get_pages () untuk melihat apakah halaman default Anda ada. Jika tidak, buat dengan 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 );

        }
        }

Untuk menguji fungsi ini di situs Anda sendiri, coba atur hook ke wp_head. Ini akan berjalan pada setiap halaman memuat dan menyisipkan halaman yang tidak ada, dengan konten dalam $ my_post ['post_content']. * Apakah kait 'activ_blog' berjalan ketika blog dibuat dalam konteks multi-situs? Saya tidak tahu. *

Lihat halaman codex untuk wp_insert_post yang saya tautkan untuk daftar lengkap parameter default yang tersedia.

12
kevtrout

gunakan "wpmu_activate_blog" sebagai ganti "activ_blog". itu berhasil untuk saya. Terima kasih

2
user2325