Amazonプライム感謝祭開催中! セール会場へ

WordPress│codocの価格をカスタムフィールドに同期する方法│全11種類のパラメータ取得

codocというプラグインを使うとWordPressで有料noteみたいなことができて、マネタイズするのに便利なのです。

じゃあどの記事が有料記事でいくらなのか?

カスタムフィールドを用いて各記事の価格をまとめたリストの例。

価格をリストにしているのですが、こういうことはカスタムフィールドを使っています。

その方がいろいろなカスタマイズで使えるのですが、codocのパラメータ(価格)はブロックもといAPI側で値を持っているので

全11種類のパラメータが全て取得できます。

その価格をカスタムフィールドに同期するコードを作成してみました。

記事のcodocの価格がカスタムフィールドに同期された様子。

こんな感じで記事にcodocがあればその記事のカスタムフィールドに同期されます。

常にだと負荷がかかるので、管理画面から好きなタイミングで同期するようにしています。

目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WordPressでcodocの価格をカスタムフィールドに同期する方法

やり方は簡単です。

コードを貼るだけです。

カスタムフィールドの設置

functions.phpに以下のコードを貼ります。

エラーが怖い人はCode Snippetsのプラグインを入れて、そこからコードを挿入しましょう。

// 投稿画面にカスタムフィールドエリアを追加
add_action('add_meta_boxes', function () {
  add_meta_box(
    'custom_price_box',
    '価格',
    'render_custom_price_field',
    'post',
    'side',
    'default'
  );
});

// 入力欄の出力
function render_custom_price_field($post)
{
  wp_nonce_field('save_custom_price', 'custom_price_nonce');
  $price = get_post_meta($post->ID, 'price', true);
  echo '<label for="price">価格(円)</label>';
  echo '<input type="number" id="price" name="price" value="' . esc_attr($price) . '" style="width:100%;" />';
}

// 保存処理
add_action('save_post', function ($post_id) {
  if (!isset($_POST['custom_price_nonce']) || !is_string($_POST['custom_price_nonce']) || !wp_verify_nonce(wp_unslash($_POST['custom_price_nonce']), 'save_custom_price')) return;
  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
  if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) return;
  if (!current_user_can('edit_post', $post_id)) return;
  if (isset($_POST['price']) && is_scalar($_POST['price'])) {
    $price_val = sanitize_text_field(wp_unslash($_POST['price']));
    update_post_meta($post_id, 'price', $price_val);
  }
});

この例は、通常投稿に価格のカスタムフィールドを設置するコードです。導入先で表示と保存を確認してください。

確認範囲と未確認の点:2026年10月12日に掲載コードを読み取り、メタボックスの追加フック、保存時の権限・リビジョン・自動保存の除外と入力処理を修正しました。一括同期の例にも管理権限・投稿編集権限とnonceの確認を追加しています。PHPの構文確認と公開ページの表示確認を行う範囲で、実際の入力・保存・同期は実行していません。現在の管理画面では、この例の「価格(円)」入力欄を確認できず、画像は2025年5月の掲載例を保持しています。多数の投稿での処理時間・負荷、codocの現在の保存形式と各パラメータ、他のカスタムフィールド実装との併用は未確認です。元に戻す場合は、子テーマの functions.php またはCode Snippetsから追加したコードを削除してください。保存済みのメタ値は残りますが、自動更新・入力欄の表示は停止します。

codocの価格をカスタムフィールドpriceに同期するコード

下記のコードもfunctions.phpに貼ります。

管理画面のツールからcodoc価格同期を選択

codoc価格を全投稿から抽出して保存を押すと、codocが設定されている記事に対して価格が同期されます。

管理画面のツールからcodoc価格同期を実行する画面。

以下、コードです。

他にcodocで設定する全てのパラメータ(11種類)を取得する方法をかいておきます。

これを使ってさらにカスタマイズすることもできます。

価格メタボックスのLocal表示例

2026年10月13日に、新規Local環境(WordPress 7.1.3、PHP 8.1.23、Twenty Twenty-Five 1.5)へ、このページのメタボックス設置用PHPだけを追加して撮影しました。写真は架空投稿と撮影前に用意した見本価格1000の表示です。本番の価格やcodocの設定は変更していません。

投稿の編集画面では右側に「価格」メタボックスと「価格(円)」の入力欄が表示されました。今回は表示と撮影のみで、入力・更新・保存は行っていません。写真は価格の保存、codocからの同期、販売価格との一致を確認した記録ではありません。

codocの全パラメータを取得するスクリプトはLocalへ追加・実行していません。外部API、一括同期、権限別の保存、ブロックエディターの非同期保存や本番での動作は未検証です。旧画像・コード・以前の未確認注記は残しています。

架空投稿の右側に表示された価格メタボックスと価格(円)欄。見本値1000で、入力・更新・保存はしていません。
架空投稿の右側に表示された価格メタボックスと価格(円)欄。見本値1000で、入力・更新・保存はしていません。 2026年10月13日Local確認。画像をクリックすると原寸で確認できます。

この記事だけ読みたい方は単品購入、ほかの有料記事も読みたい方は購読プランをご確認ください。

購読対象の記事・料金は、下のプラン案内で確認できます。

役に立った記事を、ブログやSNSで紹介しませんか?

紹介制度の対象記事・購読プランを購入した方は、codocで専用リンクと報酬条件を確認できます。

専用リンク経由で購入されると、設定された紹介報酬が発生します。

購読プランの紹介報酬は初回課金のみが対象です。

codocで紹介リンク・報酬条件を確認する

紹介時は、広告・PRであることが読者に分かるように明記してください。

  • URLをコピーしました!

プラグインの設定でお困りなら

プラグインの導入・カスタマイズ代行

プラグインの選定から設定、競合の解消、動作に合わせた追加実装まで承ります。1時間 ¥8,000〜(税込)。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次