web-dev-qa-db-ja.com

WordPressの投稿とメタ情報をCSV形式でエクスポート

SQLクエリを使用して、すべてのWordPress投稿と関連するメタ情報をエクスポートする必要があります。私はPostだけをエクスポートすることに成功しましたが、Meta情報は別のテーブルにあることに気付きました。

誰かがどうやってこれをやり遂げるかについて教えてもらえますか?

ありがとうございます。

編集:CSVファイルの最終結果は次のようになります。

[POSTS TABLE] post_content | post_title | post_excerpt |作者(meta_key)| [メタテーブル] AuthorName(meta_value)|発行元(meta_key)| PublisherName(meta_value)| BookCondition(meta_key)| BookCondition(meta_value)

そのため、1行に1つの投稿で、1行にメタ情報がありますが、同じ列にあります。

5
SixfootJames

使用しているSQLクエリは何ですか?あなたが必要とするエクスポートと終了フォーマットの詳細は何ですか?

明らかなことは1) http://wordpress.org/extend/plugins/navayan-csv-export/

「Navayan CSV Exportは、すべてのテーブルデータをCSV(カンマ区切り値)形式でエクスポートするためのワードプレスプラグインです。」

2)phpmyadmin(データベースユーティリティ)でCSVにエクスポートします。 http://www.phpmyadmin.net/home_page/index.php

phpmyadminは通常Webホストで利用可能です。 [エクスポート]を使用してから[CSV]を選択します。

phpmyadminはプラグインとしても利用可能ですが、プラグインの古いバージョンのみバグがないようです: http://wordpress.org/extend/plugins/portable-phpmyadmin/

どちらでも動作しますか?

2
markratledge

私はまったく同じことをする必要があり、方法を見つけました。複数の結合では、投稿IDごとに1行にすべてのmeta_valuesを取得します。

SELECT 
 p.ID, p.post_content,
 p.post_title,
 p.post_excerpt, 
 pm1.meta_value as author,
 pm2.meta_value as publisher,
 pm3.meta_value as book_condition
FROM wp_posts p
LEFT JOIN wp_postmeta pm1
 ON p.ID = pm1.post_id
 AND pm1.meta_key = 'author'
LEFT JOIN wp_postmeta pm2
 ON p.ID = pm2.post_id
 AND pm2.meta_key = 'publisher'
LEFT JOIN wp_postmeta pm3
 ON p.ID = pm3.post_id
 AND pm3.meta_key = 'book_condition'
WHERE post_type = 'books' AND post_status = 'publish'
1
Gustavo