Exportieren Sie Einträge und mehrere benutzerdefinierte Feld Meta zu .csv?

Erstplakat Ich versuche, eine Reihe von benutzerdefinierten Posts in eine CSV-Datei zu exportieren, damit ich sie einfach in eine neue database importieren kann. Ich habe den nativen Export nach XML ausgeführt, aber es ist nicht das richtige Format, das ich brauche. Ich brauche ein spaltenbasiertes Format (zB Name, Größe, Gewicht, etc.).

Ich habe einen benutzerdefinierten Post mit mehreren benutzerdefinierten Feldern. Ich habe Probleme, sie alle zu einer einzigen Zeile zusammenzufassen, anstatt einer neuen Zeile für jeden Metatyp. Gibt es eine Möglichkeit, eine SQL-Abfrage zu schreiben, die zahlreiche Auswahlmöglichkeiten für jeden Metatyp enthält und diese in einer Zeile mit mehreren Spalten kombiniert?

Hier ist, was ich bisher habe, die mir eine Spalte und eine neue Zeile für jeden Metatyp für den gleichen Namen gibt

SELECT p.post_title AS Name FROM wp_posts AS p INNER JOIN wp_postmeta AS pm ON p.ID = pm.post_id WHERE p.post_type = 'prospects' ORDER BY p.post_date DESC 

Nun, wie würde ich anfangen, für jeden Metatyp Spalten (Selects) hinzuzufügen und sie in einer Zeile zu kombinieren:

 AND ( SELECT m1.meta_value AS Height WHERE m1.meta_key = '_height' ) AND ( SELECT m2.meta_value AS Weight WHERE m2.meta_key = '_weight' ) 

Solutions Collecting From Web of "Exportieren Sie Einträge und mehrere benutzerdefinierte Feld Meta zu .csv?"

Mit Hilfe von @toscho zeigt get_post(); Ich konnte eine .csv mit einer leeren Vorlage ausspucken. Zuerst hatte ich Probleme mit dem Speicherlimit b / c der Datenmenge, also habe ich die Site lokal verschoben und konnte alles, was ich brauche, mit get_post();

Das ist der core davon:

 
    < ?php global $post; $args = array( 'numberposts' => -1, 'orderby' => 'post_title', 'order' => 'DESC', 'post_type' => 'prospects', 'post_status' => 'publish' ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?>
  1. < ?php echo $post->ID ?>, < ?php the_title(); ?>, < ?php echo get_field('prospect_profile_image'); ?>, < ?php echo get_field('height'); ?>, < ?php echo get_field('weight'); ?>, < ?php echo get_field('born'); ?>, , < ?php echo get_field('email'); ?>, < ?php echo get_field('phone'); ?>, < ?php echo get_field('street_address'); ?>, < ?php echo get_field('city'); ?>, < ?php echo get_field('state'); ?>, < ?php echo get_field('zip_code'); ?>, < ?php echo get_field('position_1'); ?>, < ?php echo get_field('position_2'); ?>, < ?php echo get_field('bats'); ?>, < ?php echo get_field('throws'); ?>, < ?php echo get_field('fathers_name'); ?>, < ?php echo get_field('mothers_name'); ?>
  2. < ?php endforeach; ?>

Ich habe zuerst eine Bestellliste benutzt, um sicherzugehen, dass ich alle Unterlagen bekommen habe.

Verwenden Sie get_posts() und durchlaufen Sie das Ergebnisarray. Das Argument 'numberposts' => -1 eine vollständige Liste der Beiträge.

Wenn Sie WP_Query::get_posts() in wp-includes/query.php , können Sie eine Vorstellung davon bekommen, wie schrecklich komplex eine solche Abfrage ist (was keine Entschuldigung für den wp-includes/query.php in dieser function ist …).

Und willkommen bei WordPress Stack Exchange!