Jak wyeksportować posty do CSV w WordPress
WordPress to platforma blogowa. Blog to nic innego jak zbiór postów. W niektórych sytuacjach możesz chcieć udostępnić komuś swoją listę postów za pośrednictwem pliku CSV. Pomocne będzie szybkie przejrzenie wszystkich postów bez logowania się do pulpitu nawigacyjnego. Używając takiego CSV, możesz łatwo znaleźć tytuł posta i jego bezpośredni link. W tym artykule pokażę, jak eksportować posty do CSV w WordPressie.
Zamierzam dodać jeden niestandardowy przycisk na stronie z listą postów zaplecza. Po kliknięciu tego przycisku plik CSV zostanie pobrany automatycznie, który zawiera informacje o postach.
Na przykład eksportuję tytuł posta, adres URL posta, kategorie i tagi do pliku CSV. Użytkownik może dodać do niego więcej pól. Ostateczny wynik będzie podobny do poniższego zrzutu ekranu.
Dodaj niestandardowy przycisk na liście wpisów
Aby wygenerować plik CSV, najpierw musimy podać przycisk na liście postów zaplecza. Dodatkowo napiszemy kod, który po kliknięciu tego przycisku wygeneruje plik CSV.
Otwórz swój functions.php
plik i umieść w nim poniższy kod.
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 );
Powyższy kod doda przycisk „Eksportuj wszystkie posty" na liście postów, jak pokazano na zrzucie ekranu. Tutaj użyłem haka, manage_posts_extra_tablenav
aby umieścić niestandardowy przycisk na stronie „Wszystkie posty”.
Rzeczywisty kod eksportu postów do CSV
Na tym etapie jesteś gotowy z własnym przyciskiem, który powinien wygenerować plik CSV. Teraz dodajmy kod, który po kliknięciu przycisku generuje plik CSV i wysyła go do przeglądarki w celu pobrania.
Dodaj poniższy kod do functions.php
pliku.
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' );
Otóż to! Śmiało i spróbuj. Powinieneś otrzymać plik CSV wraz z informacjami o swoim poście.
Mam nadzieję, że rozumiesz, jak eksportować posty do CSV w WordPressie. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.
Powiązane artykuły
- Jak dodać kod po tagu Body w WordPressie
- Dodawanie niestandardowego przycisku obrazu za pomocą programu Media Uploader w WordPress
- Wyświetlaj posty z określonej kategorii na stronie WordPress