WordPress é uma plataforma de blog. Um blog nada mais é que uma coleção de postagens. Em alguns cenários, você pode querer compartilhar sua lista de postagens com alguém por meio do arquivo CSV. Será útil dar uma olhada rápida em todas as postagens sem fazer login no painel. Usando esse CSV, você pode encontrar facilmente o título do post e seu link permanente. Neste artigo, mostro como exportar postagens para CSV no WordPress.
Vou adicionar um botão personalizado na página de listagem de postagens de back-end. Ao clicar neste botão, o arquivo CSV seria baixado automaticamente que contém informações sobre as postagens.
Por exemplo, estou exportando um título de postagem, URL de postagem, categorias e tags para o arquivo CSV. O usuário pode adicionar mais campos a ele. O resultado final será algo como a imagem abaixo.
Adicionar botão personalizado na lista de postagens
Para gerar o CSV, primeiro precisamos fornecer um botão na lista de postagens de back-end. Além disso, iremos escrever um código que gere um CSV com o clique deste botão.
Abra seu functions.php
arquivo e coloque o código abaixo nele.
function admin_post_list_add_export_button( $which) {
global $typenow;
if ('post' === $typenow && 'top' === $which) {
?>
<input type="submit" name="export_all_posts" class="button button-primary" value="<?php _e('Export All Posts'); ?>" />
<?php
}
}
add_action( 'manage_posts_extra_tablenav', 'admin_post_list_add_export_button', 20, 1 );
O código acima adicionará o botão ‘Exportar todas as postagens’ na lista de postagens, conforme mostrado na imagem. Aqui, usei o gancho manage_posts_extra_tablenav
para colocar o botão personalizado na página ‘Todas as postagens’.
Código real para exportar postagens para CSV
Neste estágio, você está pronto com seu botão personalizado que deve gerar o CSV. Agora, vamos adicionar um código que gere o CSV com o clique de um botão e enviá-lo ao navegador para baixá-lo.
Adicione o código abaixo no functions.php
arquivo.
function func_export_all_posts() {
if(isset($_GET['export_all_posts'])) {
$arg = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
);
global $post;
$arr_post = get_posts($arg);
if ($arr_post) {
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="wp-posts.csv"');
header('Pragma: no-cache');
header('Expires: 0');
$file = fopen('php://output', 'w');
fputcsv($file, array('Post Title', 'URL', 'Categories', 'Tags'));
foreach ($arr_post as $post) {
setup_postdata($post);
$categories = get_the_category();
$cats = array();
if (!empty($categories)) {
foreach ($categories as $category) {
$cats[] = $category->name;
}
}
$post_tags = get_the_tags();
$tags = array();
if (!empty($post_tags)) {
foreach ($post_tags as $tag) {
$tags[] = $tag->name;
}
}
fputcsv($file, array(get_the_title(), get_the_permalink(), implode(",", $cats), implode(",", $tags)));
}
exit();
}
}
}
add_action( 'init', 'func_export_all_posts' );
É isso! Vá em frente e experimente. Você deve obter o arquivo CSV junto com as informações de sua postagem.
Espero que você entenda como exportar posts para CSV no WordPress. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Como adicionar código após a tag do corpo no WordPress
- Adicionar botão de imagem personalizado com o uploader de mídia no WordPress
- Exibir postagens de categorias específicas em uma página do WordPress