これが私の課題です。20,000行のデータを含む.csvファイルがあります。
各行 には、特定の個人に関する5列のデータが含まれます。
WordPressのページまたは投稿に入力するには、各行(各個人)が必要です。したがって、言い換えれば、.csvから20,000行を20,000の投稿またはページ(つまりHTMLファイル)に変換する必要があります。
これについてはどうしたらいいでしょうか。プラグインはありますか、またはこれがもっとmySQLコマンドであることを提案しますか?
どんな方にもありがたく受けました!
ありがとうございます。
import.csv
がtabで区切られていて、2つの列がある場合:
Planet Mars The red planet.
Planet Earth Our blue planet.
それでは、この answer を使用して、タブ区切り文字としてIFS=$'\t'
を使用して解析できます。
while IFS=$'\t', read col1 col2; \
do \
echo "$col1|$col2";
done < import.csv
列数はファイルの列とほぼ一致することに注意してください。
それでは、WP-CLIを使用して wp create post
:)の投稿を作成しましょう。
while IFS=$'\t', read col1 col2; \
do \
wp post create \
--post_title="$col1" \
--post_content="$col2" \
--post_author=1 \
--post_type=post \
--post_status=publish \
done < import.csv
天文単位(au)での太陽からの平均距離など、追加のメタデータがある場合
Planet Mars The red planet. 1.52
Planet Earth Our blue planet. 1.00
それから私たちは試すことができます:
while IFS=$'\t', read col1 col2 col3; \
do \
wp post create \
--post_title="$col1" \
--post_content="$col2" \
--post_author=1 \
--post_type=post \
--post_status=publish \
| xargs -I % wp post meta add % distance_au "$col3"; done < import.csv
wp post create
がwp_insert_post()
のmeta_input
引数をサポートしていれば便利でしょう。
wp eval-file
command )を使ってphpファイルからwp_insert_post()
でこれを書き出すこともできます。
WP-CLI csvファイルからのユーザーのインポートをサポートしていますが、この種のコア機能はまだ投稿されていません。
代わりに、csvポストのインポート用に独自のWP-CLIコマンドを書くこともできます。
それから、 WP CLI Import CSV のようなプラグインがあります。これは既に実行されているようです(私はこれに関連していないので使用していません)。
Csvファイルをwxrファイルに変換できる場合は、WP-CLIで import wxrファイル)を実行できます。
また、(4.8)WordPressはwp-adminバックエンドで階層投稿タイプ(別名ページ)をうまく処理できないことにも注意してください。その種類のすべての投稿は、親選択のドロップダウンに一度に読み込まれます。バックエンドで作業している場合、それはうまくスケーリングできず、PHPタイムアウトになる可能性があります。たとえば、 here 。So 非階層型投稿タイプの場合は (別名投稿)を参照してください。