Могу ли я установить некоторые страницы по умолчанию, которые будут созданы при каждом создании нового блога

Страницы, такие как «about», будут создаваться автоматически при создании нового блога. Также мне нужны некоторые другие страницы, которые должны появляться автоматически, когда блог создается под моим мультисайтом.

Как настроить страницы по умолчанию, которые нужно создать, с помощью нового блога под многосайтом?

Например: если у меня есть multisite на example.com . Каждый блог, созданный под этим сайтом, должен иметь Домашний, О, Мой магазин, Мой адрес.

Solutions Collecting From Web of "Могу ли я установить некоторые страницы по умолчанию, которые будут созданы при каждом создании нового блога"

Я рекомендую создать функцию в файле functions.php, связанный с действием hook_Adapter_blog. Используйте функции WordPress get_pages (), чтобы узнать, существуют ли ваши страницы по умолчанию. Если они этого не сделают, создайте их с помощью 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 ); } } . 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 ); } } 

Чтобы проверить эту функцию на своем собственном сайте, попробуйте установить hook на wp_head . Он будет запускаться на каждой загрузке страницы и вставлять страницы, которые не существуют, с содержимым в $ my_post ['post_content']. * Выполняется ли крючок «activate_blog» при создании блогов в многосайтовом контексте? Я не знаю.*

Обратитесь к странице codex для wp_insert_post, к которой я привязан, для получения полного списка доступных параметров по умолчанию.

используйте «wpmu_activate_blog» вместо «activate_blog». это сработало для меня. благодаря