WordPress är en bloggplattform. En blogg är inget annat än en samling inlägg. I vissa scenarier kanske du vill dela din lista med inlägg med någon via CSV-filen. Det kommer att vara till hjälp att titta snabbt på alla inlägg utan att logga in på instrumentpanelen. Med en sådan CSV kan du enkelt hitta inläggstiteln och deras permalänk. I den här artikeln visar jag dig hur du exporterar inlägg till CSV i WordPress.
Jag ska lägga till en anpassad knapp på backend-postlistans sida. När du klickar på den här knappen hämtas CSV-filen automatiskt som innehåller information om inlägg.
Som ett exempel exporterar jag en inläggstitel, inläggs-URL, kategorier och taggar till CSV-filen. Användaren kan lägga till fler fält i den. Den slutliga utdata kommer att vara ungefär som nedan skärmdump.
Lägg till anpassad knapp i postlistan
För att skapa CSV måste vi först ge en knapp på listan över backend-inlägg. Dessutom skriver vi kod som genererar en CSV genom att klicka på den här knappen.
Öppna din functions.php
fil och placera nedanstående kod i den.
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 );
Ovanstående kod lägger till knappen ‘Exportera alla inlägg’ på inläggslistan som visas på skärmdumpen. Här har jag använt kroken för manage_posts_extra_tablenav
att placera den anpassade knappen på sidan ‘Alla inlägg’.
Faktisk kod för export av inlägg till CSV
I det här skedet är du redo med din anpassade knapp som ska generera CSV. Låt oss nu lägga till en kod som genererar CSV genom att klicka på en knapp och skicka den till webbläsaren för nedladdning.
Lägg till koden nedan i functions.php
filen.
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' );
Det är allt! Fortsätt och prova. Du bör hämta CSV-filen tillsammans med informationen om ditt inlägg.
Jag hoppas att du förstår hur du exporterar inlägg till CSV i WordPress. Dela dina tankar och förslag i kommentarsektionen nedan.
relaterade artiklar
- Så här lägger du till kod efter Body Tag i WordPress
- Lägga till anpassad bildknapp med Media Uploader i WordPress
- Visa inlägg från specifik kategori på en WordPress-sida