X

Como Criar uma Página Quando o Tema é Ativado

Snippets por IsItWP

Você está procurando uma maneira de criar novas páginas automaticamente na ativação do tema? Embora provavelmente exista um plugin para isso, criamos um trecho de código rápido que você pode usar para criar uma nova página no WordPress.

Se você deseja que seu Tema ou Plugin crie uma nova página (ou duas ou três) por conta própria, aqui está um código rápido para fazer isso. wp_insert_post retorna o ID da página recém-criada. Em caso de erro, ele retornará 0 se $wp_error for definido como false, ou um objeto WP_Error se $wp_error for definido como true.

Instruções:

Tudo o que você precisa fazer é adicionar este código ao arquivo index.php do seu tema, acima do hook.

E, claro, este código poderia ser usado para criar um POST ou qualquer outro conteúdo de Tipo de Post Personalizado, apenas alterando o valor de post_type.

<?php
$new_page = array(
	'slug' => 'this-is-my-new-page',
	'title' => 'Write a Headline that Captivates',
	'content' => "Enter the body Content for your Page here"
);
$new_page_id = wp_insert_post( array(
	'post_title' => $new_page['title'],
	'post_type' 	=> 'page',
	'post_name'	 => $new_page['slug'],
	'comment_status' => 'closed',
	'ping_status' => 'closed',
	'post_content' => $new_page['content'],
	'post_status' => 'publish',
	'post_author' => 1,
	'menu_order' => 0
));
?>

Ou, você poderia usar este código em vez disso. Este trecho verifica se uma página com o título na linha 3 já existe e cria a página se ela ainda não existir. Ele também define um modelo de página se um modelo de página for fornecido na linha 5.

Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:

if (isset($_GET['activated']) && is_admin()){
 
    $new_page_title = 'This is the page title';
    $new_page_content = 'This is the page content';
    $new_page_template = ''; //ex. template-custom.php. Leave blank if you don't want a custom page template.
 
    //don't change the code bellow, unless you know what you're doing
 
    $page_check = get_page_by_title($new_page_title);
    $new_page = array(
        'post_type' => 'page',
        'post_title' => $new_page_title,
        'post_content' => $new_page_content,
        'post_status' => 'publish',
        'post_author' => 1,
    );
    if(!isset($page_check->ID)){
        $new_page_id = wp_insert_post($new_page);
        if(!empty($new_page_template)){
            update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
        }
    }
 
}

Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.

Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: 27 melhores temas WordPress para blogs de viagem e como proteger seus formulários WordPress.

Comentários   Deixe uma resposta

  1. Suman Samanta March 3, 2019 at 5:37 am

    Se eu tivesse que dar um exemplo primordial de conteúdo de ótima qualidade, este artigo seria um. É um material bem escrito que mantém seu interesse.

  2. Obrigado. Eu exatamente preciso disso. Me avise com qual hook este código deve ser anexado?

  3. Valeu cara! Você tem solução para inserir taxonomias automáticas?

  4. Olá, no meu plugin a página automática é gerada e o shortcode também é gerado automaticamente. Eu quero que na página de detalhes não precise exibir cabeçalho, rodapé e barra lateral.. alguma ideia por favor?

  5. Oi Kevin. Como criar várias páginas com este método? Obrigado..

  6. Não suponho que haja uma maneira de direcionar os usuários para a página após a ativação, não importa qual permalink eles tenham definido?

    Eu queria usar isso para criar uma página de FAQ do tema e direcionar o usuário para ela após a ativação.

    1. Eu não acho que essa seja a melhor maneira de fazer as coisas. O que você poderia fazer é criar uma página de administração, muito parecido com o que as pessoas fazem quando criam um plugin, e adicionar seu FAQ ou outros detalhes nela. Este tutorial no net.tuts tem detalhes sobre a criação do painel de administração para um plugin, mas a ideia é a mesma.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

      1. Sim, você provavelmente está certo. Estou usando um tema filho para Twenty Eleven e ainda não descobri como me conectar às opções do tema atual. Provavelmente criarei apenas uma página HTML com as informações de que preciso e a vincularei, mas darei uma olhada nesse link, obrigado.

        1. Olá Zeaks,

          O tutorial que postei deve funcionar bem! Não deve importar o tema
          que você está usando, o código no tutorial apenas fará você adicionar código ao
          seu functions.php para criar o painel de administração, então é apenas html para
          estilizar e exibir seu faq ou outras informações.

    2. Eu não acho que essa seja a melhor maneira de fazer as coisas. O que você poderia fazer é criar uma página de administração, muito parecido com o que as pessoas fazem quando criam um plugin, e adicionar seu FAQ ou outros detalhes nela. Este tutorial no net.tuts tem detalhes sobre a criação do painel de administração para um plugin, mas a ideia é a mesma.

      http://net.tutsplus.com/tutorials/wordpress/creating-a-custom-wordpress-plugin-from-scratch/

  7. Legal! Muito obrigado!
    Acabei de usar seu código para adicionar itens de menu também.
    (‘post_type’ => ‘nav-menu-item’)

    1. Olá Tyson, Que bom que pude ajudar. Não se esqueça de me seguir no Twitter, Facebook ou RSS. Eu posto novos trechos regularmente.

  8. Cliff Paulick July 19, 2011 at 6:56 pm

    Desculpe se for uma pergunta idiota, mas por que você faria isso?
    Tenho uma instalação de teste do WP onde eu crio manualmente um novo post (ou às vezes uma página) sempre que ativo um novo plugin – para testar o que ele pode fazer. Eu consigo ver o benefício de um gerador de página/post para essa ação, mas não tenho certeza por que uma nova página para ativar um tema. Por favor, me ajude a entender. Obrigado!

    1. Não existe pergunta boba no wpsnipp, esta é uma boa pergunta. Digamos que eu tenha um novo tema que funcionará mais como um CMS com uma página inicial estática padrão. Você poderia usar isso em seu tema para criar as páginas necessárias para a pessoa em vez de pedir para ela fazer isso manualmente. Dessa forma, eu poderia criar qualquer número de páginas necessárias para um tema que eu estava criando, então tudo o que a pessoa precisaria fazer seria vincular as páginas aos modelos necessários. Mas este é apenas um exemplo, pode haver razões que nem conseguimos pensar.

      1. Como adiciono esta nova página criada pelo seu código no menu principal. ('post_type' => 'nav-menu-item') não está funcionando para mim

    2. Isso é meio antigo, mas para mim estou criando um tema e configurando uma página personalizada que criará um mapa do site, e quero vincular esse mapa do site no rodapé.

      Este é um ótimo pedaço de código, me garante com certeza que esta página de mapa do site estará lá em todo o site.

  9. Tweets that mention Wordpress Create page on theme activation – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com November 24, 2010 at 4:32 pm

    […] Este post foi mencionado no Twitter por wp_freak, WPSNIPP. WPSNIPP disse: #wordpress Criar página na ativação do tema http://bit.ly/gTZHVl #blog por favor RT 🙂 […]

Adicionar um comentário

Ficamos felizes que você tenha escolhido deixar um comentário. Por favor, tenha em mente que todos os comentários são moderados de acordo com nossa política de privacidade, e todos os links são nofollow. NÃO use palavras-chave no campo do nome. Vamos ter uma conversa pessoal e significativa.

Checklist de Lançamento WordPress

O Checklist Definitivo para Lançamento de WordPress

Compilamos todos os itens essenciais da lista de verificação para o lançamento do seu próximo site WordPress em um e-book prático.
Sim, envie-me o eBook Gratuito!