Je souhaite exporter tous mes messages sous forme de fichiers individuels en texte brut. Ainsi, le format peut être quelque chose comme:
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
Est-ce possible? Y at-il un plugin ou une solution de contournement pour faire cela?
Merci.
Essayez ceci (vous devrez peut-être amorcer WP en chargeant wp-load.php
, selon l'endroit où vous avez mis ce code).
$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;
N'oubliez pas que si deux publications ont le même titre, vous n'obtiendrez qu'un seul fichier texte.
Une recherche superficielle ne fait apparaître aucun plugin qui le fasse ... mais vous pouvez utiliser l'exportateur intégré comme exemple pour créer votre propre plugin. Il est situé dans /wp-admin/includes/export.php
.
Il s’agit essentiellement d’une page PHP qui interroge la base de données afin d’obtenir l’ensemble de vos publications, puis transfère le contenu dans un modèle XML de pré-génération pouvant être importé ultérieurement.
Il semblerait que vous souhaitiez basculer vers un générateur de blog statique, tel que Jekyll. La réponse suivante est basée sur la réponse de pdb et devrait être prête à être utilisée. Ma réponse peut traiter avec:
C'est ici:
<?
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."<br/>";
$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('Y-m-d 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."
?>