WordPress es una plataforma de blogs. Un blog no es más que una colección de publicaciones. En algunos escenarios, es posible que desee compartir su lista de publicaciones con alguien a través del archivo CSV. Será útil echar un vistazo rápido a todas las publicaciones sin iniciar sesión en el panel. Con dicho CSV, puede encontrar fácilmente el título de la publicación y su enlace permanente. En este artículo, le muestro cómo exportar publicaciones a CSV en WordPress.
Voy a agregar un botón personalizado en la página de listado de publicaciones de backend. Al hacer clic en este botón, el archivo CSV se descargaría automáticamente y contiene información sobre las publicaciones.
Por ejemplo, estoy exportando el título de una publicación, la URL de la publicación, las categorías y las etiquetas al archivo CSV. El usuario puede agregarle más campos. El resultado final será algo así como la captura de pantalla a continuación.
Agregar botón personalizado en la lista de publicaciones
Para generar el CSV, primero debemos dar un botón en la lista de publicaciones de backend. Además, escribiremos código que genera un CSV al hacer clic en este botón.
Abra su functions.php
archivo y coloque el siguiente código en él.
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 );
El código anterior agregará el botón ‘Exportar todas las publicaciones’ en la lista de publicaciones como se muestra en la captura de pantalla. Aquí, he usado el gancho manage_posts_extra_tablenav
para colocar el botón personalizado en la página ‘Todas las publicaciones’.
Código real para exportar publicaciones a CSV
En esta etapa, está listo con su botón personalizado que debería generar el CSV. Ahora, agreguemos un código que genere el CSV con solo hacer clic en un botón y envíelo al navegador para descargarlo.
Agregue el siguiente código en el functions.php
archivo.
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' );
¡Eso es! Adelante y pruebalo. Debería obtener el archivo CSV junto con la información de su publicación.
Espero que entiendas cómo exportar publicaciones a CSV en WordPress. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Cómo agregar código después de la etiqueta del cuerpo en WordPress
- Agregar un botón de imagen personalizado con el cargador de medios en WordPress
- Mostrar publicaciones de una categoría específica en una página de WordPress