Como criar posts e páginas programaticamente no WordPress

Publicados: 2021-09-16

Você está procurando uma alternativa para adicionar posts e páginas ao seu site? Você veio ao lugar certo. Neste guia, mostraremos como criar posts e páginas programaticamente no WordPress .

Como o maior Sistema de Gerenciamento de Conteúdo (CMS) do mundo, a publicação de posts e páginas é uma de suas principais características. Inicialmente, o WordPress foi criado para ajudar os proprietários de sites a criar e gerenciar seus sites. Hoje em dia, tornou-se uma solução completa para todos os tipos de sites.

Além de ser popular entre blogs e lojas online, existem muitos outros tipos de sites construídos com WordPress, de catálogos a diretórios a quadros de empregos, wikis, portfólios pessoais, fóruns ou até redes de mídia social.

Todos os sites (exceto sites estáticos) publicam algum tipo de conteúdo com certa frequência. Postagens e páginas são o tipo de conteúdo mais básico em comparação com outros tipos, como produtos, comentários, resenhas e muito mais.

Antes de vermos por que e como criar posts e páginas programaticamente, vamos entender melhor as diferenças entre eles. Isso ajudará você a seguir as boas práticas e evitar possíveis problemas.

Diferença entre postagem e páginas

1) Postagens

No WordPress, as postagens são a maneira como um site oferece conteúdo valioso e atualizado para seus usuários. Espera-se que um site publique posts regularmente, mas isso varia muito dependendo do tipo de site. Um blog de notícias publicará conteúdo com muito mais frequência do que um site corporativo, portanto, o número de postagens em um site pode variar muito.

As postagens geralmente são listadas em ordem cronológica inversa nos sites. Isso significa que a última postagem publicada ficará visível no topo da lista. Mas você também pode tornar um post fixo e exibi-lo permanentemente em algum lugar do seu site.

Quando você tem um site grande com centenas ou até milhares de postagens, o uso correto das taxonomias é fundamental para permitir que os usuários encontrem qualquer postagem com facilidade. Lembre-se de que eles navegarão pelas categorias e subcategorias, examinarão a lista de tags e usarão a caixa de pesquisa. Para mais informações sobre isso, confira nosso post sobre como adicionar categorias ao menu.

2) Páginas

Ao contrário das postagens, as páginas são mais estáticas do que as postagens. No entanto, eles geralmente incluem conteúdo que é constantemente atualizado. Por exemplo, uma página de loja ou página de categoria certamente terá conteúdo atualizado, mas ainda são páginas porque você não publica uma nova página de loja para cada atualização de produto.

Páginas como “Sobre nós”, “Quem somos”, “Contato” ou “Documentação” são principalmente conteúdo estático, por isso geralmente não são atualizadas com muita frequência.

Outra diferença entre posts e páginas são tags e categorias. As postagens podem ter categorias e tags para facilitar sua organização e serem utilizadas em caixas de busca, enquanto as páginas não possuem taxonomias.

Para obter mais informações sobre isso, confira nosso guia que explica diferentes maneiras de criar páginas. Além disso, recomendamos que você dê uma olhada em nosso tutorial para alterar o tipo de postagem no WordPress.

Por que criar posts e páginas programaticamente?

Você provavelmente sabe como criar posts e páginas no painel do WordPress. Você simplesmente precisa ir para Posts/Páginas > Adicionar Novo e adicionar um nome, conteúdo, escolher uma categoria e assim por diante.

No entanto, se você estiver trabalhando em um projeto mais avançado, poderá precisar de uma solução alternativa. Por exemplo, se você precisar automatizar o processo de publicação para atender a um requisito específico ou restringir o acesso de determinados usuários. Se este for o seu caso, aprender a criar posts e páginas do WordPress programaticamente será muito útil.

Como publicar posts e páginas do WordPress programaticamente

Nesta seção, mostraremos como criar postagens e páginas programaticamente no WordPress. Explicaremos o código abaixo, mas é recomendável que você tenha algumas habilidades de programação para facilitar o processo.

NOTA : Como editaremos alguns arquivos principais, antes de começarmos, recomendamos que você faça backup do seu site. Além disso, crie um tema filho se você ainda não tiver um ou use qualquer um desses plugins de tema filho.

Como publicar postagens

Aqui está o script completo que publicará automaticamente um post e a explicação do código abaixo. Tenha em mente que você deve colar o código no arquivo functions.php do seu tema filho

 add_action( 'admin_init', 'QuadLayers_publish_post');

function QuadLayers_publish_post() {
 
    if ( get_option( 'post_is_publicado_01' ) != 'sim' ) {
		 $postType = 'post'; 
		 $userID = 1; 
		 $categoryID = '1'; 
		 $postStatus = 'publicar';  
		 $leadTitle = 'Um post foi publicado '.date("n/d/Y");
		 $leadContent = '<h1>Publicado programaticamente</h1><p>Este post foi publicado programaticamente e a opção meta foi salva como <b>post_is_published_01</b>. Um srcipt PHP no arquivo functions.php do tema filho.</p>';
		 $leadContent .= ' <!--more--><p>Eles são caros, mas valem a pena.</p>';
		 
		 # hora e data de construção
		 $timeStamp = $minuteCounter = 0;  
		 $iContador = 1; 
		 $minutoIncremento = 1; 
		 $adjustClockMinutes = 0; 
		 $minuteCounter = $iCounter * $minuteIncrement; 
		 $minuteCounter = $minuteCounter + $adjustClockMinutes; 
		 $timeStamp = date('Ymd H:i:s', strtotime("+$minuteCounter min")); 

	 	 #construir postagem
		 $new_post = array(
		 'post_title' => $leadTitle,
		 'post_content' => $leadContent,
		 'post_status' => $postStatus,
		 'post_date' => $timeStamp,
		 'post_author' => $userID,
		 'post_type' => $postType,
		 'post_category' => array($categoryID)
		 );	
		 # publique!
		 $post_id = wp_insert_post($new_post);

  update_option( 'post_is_publicado_01', 'sim');
    }
}

Como não podemos saber se um post existe antes de publicá-lo, precisamos registrar em algum lugar que nosso post foi publicado. Se não fizermos isso, nossa postagem será publicada toda vez que uma tela de back-end for carregada.

A tabela de opções do banco de dados é o local correto para fazer isso. Estamos armazenando uma opção chamada post_is_published_01 após a publicação do post, com a função update_option() . E verificando se a opção existe com o get_option() . Se esta opção estiver presente no banco de dados, o script não fará nada.

Para executar o script novamente, você pode simplesmente alterar o nome da opção para post_is_published_02 ou o que quiser.

Dentro da condicional if() , você pode ver como definimos o conteúdo do post no primeiro bloco. E precisamos preparar a hora e a data para atender aos requisitos do WordPress.

Por fim, a função responsável pela publicação do post é wp_insert_post() , que anexa todos os dados anteriores declarados na função

publicar post programaticamente

Como publicar páginas

Publicar páginas programaticamente é um pouco mais simples. Neste script, não teremos uma opção de banco de dados para verificar se a página já foi publicada.

Como as páginas têm uma função diferente dos posts e as funções do WordPress para posts e páginas são diferentes, podemos usar a função get_page_by_title() para verificar se já publicamos uma página com o mesmo título anteriormente. E então inserimos as informações sobre a página como autor, título, nome e assim por diante.

Use o seguinte script para publicar uma página em seu site WordPress:

 add_action( 'admin_init', 'QuadLayers_publish_page');

function QuadLayers_publish_page(){
	$check_page_exist = get_page_by_title('Página publicada programaticamente', 'OBJECT', 'page');
	if(empty($check_page_exist)) {
		$page_id = wp_insert_post(
			variedade(
			'comment_status' => 'fechar',
			'ping_status' => 'fechar',
			'post_autor' => 1,
			'post_title' => ucwords('Página publicada programaticamente'),
			'post_name' => strtolower(str_replace(' ', '-', trim('Página publicada programaticamente'))),
			'post_status' => 'publicar',
			'post_content' => '<p>Este é o conteúdo da página, tags html são permitidas aqui</p>', 
                        'post_type' => 'page', 'post_parent' => 'id_of_the_parent_page_if_it_available' ) ); 
        } 
} 

publicar página programaticamente

Conclusão

Em resumo, neste guia vimos algumas diferenças importantes entre postagens e páginas. As postagens tendem a ser mais dinâmicas e possuem taxonomias e categorias, enquanto as páginas tendem a ser mais estáticas e não possuem taxonomias.

Embora no WordPress você possa criar facilmente páginas e postagens com o editor embutido, aprender a fazer isso com um pouco de codificação pode ser útil em algumas situações para automatizar o processo de publicação para atender a requisitos específicos. Se for esse o seu caso, aprender a criar posts e páginas programaticamente pode facilitar sua vida.

Neste guia, vimos como criar posts e páginas e as diferenças nos scripts. Incentivamos você a usar esses scripts como base e personalizá-los para o seu site.

Você já tentou criar posts e páginas com um pouco de código? Funcionou como você esperava? Deixe-nos saber na seção de comentários abaixo!

Se você gostou deste post, também pode se interessar por:

  • Como redirecionar uma página do WordPress
  • Como converter o tipo de postagem no WordPress
  • Guia para criar o tipo de postagem personalizado do WordPress programaticamente