WordPress Really Simple CSV Importer スラッグで上書き登録

PHP

プラグイン「Really Simple CSV Importer」

「Really Simple CSV Importer」は、CSVファイルを使用してWordPressに投稿を簡単に一括インポートできる便利なプラグインです。特に、大量の投稿やカスタム投稿を一度に登録したい場合に役立ち、シンプルな操作性が特徴です。

新規投稿と更新機能

登録するCSVファイルの各行が新規の投稿として追加されます。また、CSV内に既存の投稿IDが含まれている場合、そのIDに基づいて既存の投稿が更新され、内容が上書きされます。これにより、すでに登録済みの投稿を効率よく修正することが可能です。

投稿の上書きにおける課題

データを更新したい場合は、投稿IDをCSVファイルに含める必要がありますが、IDの確認や記載は少し手間がかかります。投稿IDを手動で確認し、それをCSVに設定し直すプロセスが必要になるため、煩雑になる場合があります。

スラッグを使用した上書き方法

この問題を解決するために、スラッグを使って投稿を上書きするカスタマイズを行うことができます。スラッグは投稿ごとに固有のURL部分に使われる識別子で、これを利用することで、IDを使わずにデータを上書きできるようになります。

以下は、そのカスタマイズ方法です。

カスタムコードの実装

スラッグによるID自動設定

CSVファイルにスラッグを含め、そのスラッグが既に登録されていれば、自動的にその投稿IDを取得して上書きします。以下のコードをfunctions.phpに追加します。

// 投稿スラッグがある場合、IDを設定して上書きする
$post_name = $post["post_name"];
$post_type = $post["post_type"];
if ($post_name) {
    $data = get_page_by_path($post_name, "OBJECT", $post_type);
    if ($data->ID) {
        $post["ID"] = (string) $data->ID;
        $is_update = true;
    }
}

これをCSV登録時に行うように設定します。

CSV登録時のフック設定

この処理をCSV登録時に自動的に行うため、以下のフィルターフックを追加します。

// CSV登録時に投稿データを変更するフィルター
function modify_csv_post($post, $is_update) {
    return $post;
}
add_filter('really_simple_csv_importer_save_post', 'modify_csv_post', 10, 2);

このカスタマイズにより、投稿の上書き時にCSVファイルに投稿IDを記載する必要がなく、スラッグで投稿を自動的に上書きできるようになります。これにより、手間が省け、効率的に投稿データを管理できるようになります。

コメント