web-development-kb-pt.site

Posso definir algumas páginas padrão para serem criadas em cada criação de um novo blog

As páginas como "about" serão criadas automaticamente quando um novo blog for criado. Da mesma forma, eu preciso de algumas outras páginas que devem aparecer automaticamente quando um blog é criado em meus multisites.

Como posso configurar as páginas padrão a serem criadas com um novo blog em um multisite?

Por ex .: Se eu tiver um multisite em example.com. Todo blog criado sob este site deve ter Início, Sobre, Minha loja, Meu endereço.

6
user391

Eu recomendo criar uma função em seu arquivo functions.php que se liga ao gancho de ação activate_blog. Use as funções do WordPress get_pages () para ver se suas páginas padrão existem. Se não, crie-os com 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 );

        }
        }

Para testar essa função em seu próprio site, tente definir o gancho como wp_head. Ele será executado em cada carregamento de página e insere as páginas que não existem, com o conteúdo em $ my_post ['post_content']. * O hook 'activate_blog' é executado quando os blogs são criados em um contexto de vários sites? Eu não sei.*

Consulte a página do códice para wp_insert_post que eu criei para a lista completa de parâmetros padrão disponíveis.

12
kevtrout

use "wpmu_activate_blog" em vez de "activate_blog". funcionou para mim. obrigado

2
user2325