Kuinka viedä viestejä CSV-muotoon WordPressissä
WordPress on blogiympäristö. Blogi ei ole muuta kuin kokoelma viestejä. Joissakin tilanteissa haluat ehkä jakaa viestiluettelosi jonkun kanssa CSV-tiedoston kautta. On hyödyllistä katsoa nopeasti kaikki viestit ilman kirjautumista hallintapaneeliin. Tällaisen CSV: n avulla löydät helposti viestin otsikon ja niiden pysyvän linkin. Tässä artikkelissa näytän, kuinka viestejä viedään CSV-muotoon WordPressissä.
Aion lisätä yhden mukautetun painikkeen backend post list -sivulle. Napsauttamalla tätä painiketta CSV-tiedosto latautuu automaattisesti, joka sisältää tietoja viesteistä.
Vie esimerkiksi viestin otsikko, URL-osoite, kategoriat ja tunnisteet CSV-tiedostoon. Käyttäjä voi lisätä siihen lisää kenttiä. Lopullinen tulos on jotain alla olevan kuvakaappauksen kaltaista.
Lisää mukautettu painike postituslistalle
CSV: n luomiseksi meidän on ensin annettava painike taustaviestin luettelossa. Lisäksi kirjoitamme koodin, joka luo CSV: n tämän painikkeen napsautuksella.
Avaa functions.php
tiedosto ja aseta siihen alla oleva koodi.
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 );
Yllä oleva koodi lisää ‘Vie kaikki viestit’ -painikkeen viestiluetteloon, kuten kuvakaappauksessa näkyy. Tässä olen käyttänyt koukkua manage_posts_extra_tablenav
mukautetun painikkeen sijoittamiseen Kaikki viestit -sivulle.
Todellinen koodi viestejä viedä CSV-tiedostoon
Tässä vaiheessa olet valmis mukautetulla painikkeellasi, jonka pitäisi luoda CSV. Lisää nyt koodi, joka luo CSV: n napin painalluksella, ja lähetä se selaimeen sen lataamista varten.
Lisää alla oleva koodi functions.php
tiedostoon.
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' );
Se siitä! Mene eteenpäin ja kokeile sitä. Sinun tulisi hankkia CSV-tiedosto postisi tietojen kanssa.
Toivon, että ymmärrät, kuinka viestejä viedään CSV-muotoon WordPressissä. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.