Aguarde...

29 de agosto de 2020

Como duplicar uma página no WordPress (3 métodos)

Como duplicar uma página no WordPress (3 métodos)

Você provavelmente conhece a dor de duplicar conteúdo em postagens ou páginas quando está trabalhando com estruturas semelhantes e deseja manter uma formatação consistente. Digitar tudo manualmente pode ser um trabalho penoso e penoso e, mesmo copiando e colando, você corre o risco de cometer erros.

Felizmente, a duplicação de conteúdo não precisa ser tão complicada. O WordPress oferece vários métodos – tanto integrados quanto via plug-ins – para criar novos posts e páginas idênticas às existentes.

Neste artigo, discutiremos brevemente por que você pode precisar duplicar uma página ou postar no WordPress. Em seguida, veremos como fazer isso com e sem um plugin. Vamos mergulhar!

Por que você deseja duplicar uma página ou postar no WordPress

Existem alguns cenários comuns em que você precisa duplicar uma página ou postar no WordPress. Um dos mais comuns é que você deseja criar modelos para conteúdo futuro em seu blog.

Por exemplo, se suas postagens geralmente usam a mesma estrutura e formatação, você pode escolher criar um modelo, especialmente se o estilo for particularmente complexo ou matizado. Tudo o que você precisa fazer nas postagens subsequentes é adicionar texto, imagens e qualquer outro conteúdo necessário.

Como alternativa, você também pode precisar fazer backup de uma postagem ou página antes de fazer alterações. Por exemplo, digamos que você acabou de concluir um trabalho de design para um cliente e ele deseja conferir e fazer alterações para se adequar melhor ao seu gosto.

É uma prática inteligente fazer backup de todo o seu trabalho antes que isso aconteça. Por um lado, ele lhe dará uma referência para futuras atribuições. Além disso, se o seu cliente decidir que deseja que você reverta as alterações ou exclua acidentalmente algo importante, você poderá restaurar o original.

Da mesma forma, as páginas duplicadas também fornecem referências para quando você redesenhar áreas específicas do seu site. Dito isso, se você estiver fazendo uma revisão completa ou se sua intenção for uma migração em massa de conteúdo de um site para outro, um backup completo do site pode ser necessário.

Uma coisa importante a se notar é que ter páginas ou postagens duplicadas em seu site não é benéfico para a otimização de mecanismos de pesquisa (SEO) . Portanto, você deve evitar publicar exatamente o mesmo conteúdo duas vezes para evitar problemas.

Como duplicar uma página ou postar no WordPress (3 métodos)

Como mencionamos anteriormente, a duplicação de postagens e páginas pode ser feita com ou sem plug-ins. Aqui estão alguns métodos que você pode tentar, dependendo de seus objetivos e nível de habilidade.

1. Use o Editor de bloco para duplicar o conteúdo

Este método usa o mecanismo de duplicação embutido que pode ser acessado no Editor de Bloco. Comece abrindo a página ou postagem que deseja copiar.

Em seguida, clique no menu de três pontos no canto superior direito da tela. Selecione a opção Copiar todo o conteúdo :

Você pode então criar uma nova postagem e simplesmente colar o conteúdo copiado nela.

Observe que este método não copia metadados como o título do post, taxonomias (categorias e tags) ou dados de SEO como palavras-chave e meta descrições. No entanto, se você estiver apenas criando modelos para conteúdo futuro, pode funcionar muito bem.

2. Duplicar postagens e páginas usando um plug-in

Existem vários plug-ins disponíveis para duplicar postagens, páginas e tipos de postagem personalizados . Algumas opções populares incluem Duplicar página e postagem , Duplicar postagem e Duplicar página .

Apesar de seus nomes confusos, todos esses plug-ins funcionam de maneira muito semelhante e podem clonar vários tipos de postagem. Mostraremos como usar página duplicada e postagem como exemplo.

Primeiro, você deseja instalar e ativar o plugin. Assim que isso for feito, um link duplicado será adicionado para cada postagem ou página em suas respectivas listas no painel do WordPress:

Como duplicar uma página no WordPress (3 métodos)

Uma nova postagem ou página com o mesmo título é criada como rascunho quando você clica na opção Duplicar . Todo o conteúdo e metadados também são copiados.

3. Adicione uma opção ‘Duplicar’ ao seu tema

Existe mais uma maneira de adicionar funcionalidade de duplicação ao seu site sem um plug-in. Este método envolve a edição do seu tema. Se você preferir não instalar outro plugin em seu site, mas precisa ser capaz de copiar metadados entre suas postagens, esta pode ser a solução para você.

Antes de prosseguir com este método, certifique-se de criar um backup do seu site. Também recomendamos o uso de um tema filho . Isso garante que você não perderá a funcionalidade de duplicação ao atualizar seu tema no futuro.

Usaremos o Editor de temas embutido no WordPress para fazer alterações no arquivo functions.php :

Como duplicar uma página no WordPress (3 métodos)

No entanto, você também pode acessá-lo por meio do Protocolo de transferência de arquivos (FTP) usando o Filezilla. De qualquer maneira, você precisará adicionar o seguinte código ao final do arquivo:

/*
* Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
*/
function rd_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
wp_die('No post to duplicate has been supplied!');
}

/*
* Nonce verification
*/
if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
return;

/*
* get the original post id
*/
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );

/*
* if you don't want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;

/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {

/*
* new post data array
*/
$args = array(
'comment_status' => $post->comment_status,
'ping_status' => $post->ping_status,
'post_author' => $new_post_author,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title,
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
'menu_order' => $post->menu_order
);

/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );

/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}

/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if (count($post_meta_infos)!=0) {
$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == '_wp_old_slug' ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
}
$sql_query.= implode(" UNION ALL ", $sql_query_sel);
$wpdb->query($sql_query);
}

/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
exit;
} else {
wp_die('Post creation failed, could not find original post: ' . $post_id);
}
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );

/*
* Add the duplicate link to action list for post_row_actions
*/
function rd_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
}
return $actions;
}

add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

As duas últimas linhas habilitam a funcionalidade de duplicação para postagens e páginas. Se você decidir que deseja este recurso apenas para um ou outro, pode remover a linha relevante.

Agora você deve ver uma opção Duplicar ao lado de outra funcionalidade para postagens e páginas em suas respectivas listas:

Como duplicar uma página no WordPress (3 métodos)

Este recurso de Duplicar é um pouco diferente daquele que adicionamos com um plugin acima. Ao clicar no link aqui, você perceberá que o novo rascunho será aberto no editor do WordPress para que você possa começar a trabalhar nele imediatamente.

Conclusão

Você pode querer duplicar suas páginas ou postagens para criar modelos para conteúdo futuro ou fazer backup de postagens antes de fazer alterações em seu site. Não importa o motivo, no entanto, existem métodos simples para fazer isso.

Para recapitular, aqui estão três maneiras de clonar uma postagem ou duplicar uma página no WordPress:

  1. Duplique o conteúdo sem um plugin usando o link Copiar todo o conteúdo no Editor de bloco.
  2. Usar um plugin como Duplicate página e Pós , Duplicate Publicar , ou Duplicate página .
  3. Adicione a funcionalidade de duplicação editando o arquivo functions.php do seu tema atual.

Você tem alguma dúvida sobre a duplicação de páginas e postagens no WordPress? Deixe-nos saber na seção de comentários abaixo!

Postado em Blog
Escreva um comentário