概要
この記事では、WordPressのカスタムフィールドをJSON形式で一括エクスポート・インポートする機能について解説します。
ユースケース
カスタムフィールドはWordPressサイトで追加情報を保存するための便利な機能ですが、複数の記事やページに同じフィールドを一括で追加したい場合や、他のサイトに移行する際にデータを簡単に移行したいときにこのスニペットが役立ちます。
前提条件
この機能を実現するためには、WordPressの管理画面にアクセスし、テーマやプラグインを変更できる権限を持っている必要があります。
サンプルコード
// カスタムフィールドをJSON形式でエクスポート
function export_custom_fields_to_json() {
$posts = get_posts(array('post_type' => 'post', 'posts_per_page' => -1));
$custom_fields = array();
foreach ($posts as $post) {
$custom_fields[$post->ID] = get_post_custom($post->ID);
}
$json_data = json_encode($custom_fields);
header("Content-type: application/json");
header("Content-Disposition: attachment; filename=custom_fields.json");
echo $json_data;
die();
}
add_action('init', 'export_custom_fields_to_json');
解説
- `get_posts()`関数を使って、全ての投稿を取得し、`get_post_custom()`関数でカスタムフィールドのデータを取得します。
- 取得したデータを連想配列に格納し、`json_encode()`関数でJSON形式に変換します。
- `header()`関数を使ってJSONファイルとしてダウンロードされるように設定し、最終的にJSONデータを出力します。
ベストプラクティス
- エクスポートしたJSONファイルは適切にバックアップしておくことで、データの損失を防ぐことができます。
- インポート時には、カスタムフィールドの名前や構造が一致していることを確認し、データの整合性を保つことが重要です。