Exportieren Sie alle Posts als einzelne normale TXT-Dateien

Ich möchte alle meine Posts als einzelne reine Textdateien exportieren. Das Format kann also so aussehen:

title.txt 

 Title: title Pub date: date Category: cat Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 

Ist das möglich? Gibt es ein Plugin oder eine Workaround, um dies zu tun?

Vielen Dank.

Solutions Collecting From Web of "Exportieren Sie alle Posts als einzelne normale TXT-Dateien"

Versuchen Sie dies (Sie müssen WP möglicherweise durch Laden von wp-load.php , je nachdem, wo Sie diesen Code abgelegt haben).

 $args = array( 'post_type' => 'post', 'post_status' => 'publish', //'posts_per_page' => -1 //uncomment this to get all posts ); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post(); $f = fopen(get_the_title() . '.txt', 'w'); $content = 'Title: ' . get_the_title() . PHP_EOL; $content .= 'Pub date: ' . get_the_date() . PHP_EOL; $content .= 'Category: '; foreach (get_the_category() as $cat) { $content .= $cat->cat_name . ', '; } $content .= PHP_EOL . PHP_EOL; $content .= get_the_content(); fwrite($f, $content); fclose($f); endwhile; 

Wenn zwei Beiträge den gleichen Titel haben, erhalten Sie nur eine Textdatei.

Eine kursorische Suche bringt keine Plugins hervor, die das tun … aber Sie könnten den eingebauten Exporter als Beispiel für den Aufbau Ihres eigenen Plugins verwenden. Es befindet sich in /wp-admin/includes/export.php .

Im Wesentlichen handelt es sich um eine PHP-Seite, die die database abfragt, um alle Ihre Posts abzurufen, und dann den Inhalt in eine vordefinierte XML-Vorlage ablegt, die später importiert werden kann.

Es sieht so aus, als ob Sie zu einem statischen Blog-Generator wie Jekyll wechseln wollten. Die folgende Antwort basiert auf der Antwort von pdb und sollte sofort einsatzbereit sein. Meine Antwort kann damit umgehen:

  • mehrere Post mit demselben Titel
  • Deutsche Umlaute

Hier ist es:

 < ? require_once('wp-load.php'); function getFeaturedImage($postid) { $featured_image = ""; $array = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); if (count($array)>1) { $featured_image = $array[0]; $featured_image = str_replace('http://martin-thoma.com/wp-content/uploads/', '', $featured_image); } return $featured_image; } $args = array( 'post_type' => 'post', 'post_status' => 'draft', 'posts_per_page' => -1 //uncomment this to get all posts ); $query = new WP_Query($args); $i=0; $titles = array(); while ( $query->have_posts() ) : $query->the_post(); $i++; $name = $post->post_name; if ($name == "") { $name = strtolower(get_the_title()); $replacements = array( ' ' => '-', '#' => 'nr', '/' => 'or', 'ö' => 'o', 'ü' => 'u', 'ä' => 'a', 'ß' => 'ss' ); $name = str_replace(array_keys($replacements), $replacements, $name); } if (array_key_exists($name, $titles)) { $name = $post->post_name."-".$post->ID; } else { $titles[$name] = true; } echo $name."
"; $f = fopen("export/".$name. '.md', 'w'); $content = "---".PHP_EOL; $content.= "layout: post".PHP_EOL; $content.= "title: ".get_the_title().PHP_EOL; $content.= "author: ".get_the_author().PHP_EOL; $content.= "date: ".get_the_date('Ymd h:i:s').PHP_EOL; $content.= "categories: ".PHP_EOL; $cats = get_the_category(); if ($cats) { foreach($cats as $category) { $content .= '- '.$category->name.PHP_EOL; } } $content .= 'tags: '; $posttags = get_the_tags(); if ($posttags) { $content .= PHP_EOL; foreach($posttags as $tag) { $content.= "- ".$tag->name.PHP_EOL; } } else { $content .= "[]".PHP_EOL; } echo wp_get_attachment_image_src(get_the_post_thumbnail($post->ID)); $content .= 'featured_image: '.getFeaturedImage($postid).PHP_EOL; $content .= '---'.PHP_EOL; $content .= get_the_content(); fwrite($f, $content); fclose($f); endwhile; echo $i." posts exported." ?>

“Warum nicht einfach mit dem Standard-XML-Export arbeiten”

Ich habe keine Antwort, aber das OP möchte das vielleicht tun, damit er oder sie die Beiträge in Devonthink Pro oder ein ähnliches Programm importieren kann.