WordPress で投稿を新規作成/編集/削除した際に、全投稿記事の記事IDと記事タイトルをファイル出力する

1月 16, 2024

クラウドソーシングの依頼ネタです。

本記事タイトルの動作も含めて、3ケースで一覧ファイルを作成したいと言う内容です。

目次

出力する一覧ファイル

  1. WordPress で投稿を新規作成/編集/削除した際に、全投稿記事の記事IDと記事タイトルをファイル出力する
  2. カスタム投稿を新規作成/編集/削除した際に、そのカスタム投稿の全記事の記事IDと記事タイトルをファイル出力する
  3. ユーザー新規作成/削除時、プロフィール情報更新時に、全ユーザーのユーザーIDとニックネームをファイル出力する

対応の条件

  1. プラグインは使用せず、functions.php にコーディングする
  2. ファイル出力先は、テーマ内(テーマフォルダ内と解釈)
  3. ファイルの拡張子は、json/php/html/csv のいずれか

対応

以下のイベントフック、一覧を取得、一覧を出力の、WordPressイベントや関数を組み合わせて、phpプログラムを作成すれば出来ます。

イベントフック

  • publish_page(投稿が1つのステータスから別のステータスに移行したときに発生)
  • pre_post_update(データベースで既存の投稿が更新される直前に発生)
  • post_updated (既存の投稿が更新されると発生)
  • before_delete_post(wp_delete_post()の開始時に、投稿が削除される前に発生。コメント、添付ファイル、メタ情報はまだ利用できる)
  • delete_post(投稿がデータベースから削除される直前に発生。コメント、添付ファイル、メタ情報はすでに削除されている)
  • deleted_post(投稿がデータベースから削除された直後に発生)
  • user_register(新しいユーザーが登録された直後に発生)
  • delete_user (ユーザーがデータベースから削除される直前に発生)

一覧を取得

  • get_posts()(最近の投稿あるいはパラメータに一致した投稿を取得)
  • get_users()(条件に一致するユーザーのリストを取得)

一覧を出力

  • json_encode(値を JSON 形式にして返す)
  • xmlrpc_encode(PHP の値に関する XML を生成する)
  • fputcsv (行を CSV 形式にフォーマットし、ファイルポインタに書き込む)

htmlとphpは、依頼主さんがどうしたいかによりますが、php の echo や fputs() で出力すれば良いと思います。