サポート » 使い方全般 » すでにあるカスタム投稿タイプに、カスタムフィールドを追加する方法

  • 通常投稿のバックエンドにカスタムフィールドを追加することができました。
    (こちらの参照サイトさんから丸コピペですが…)
    http://cly7796.net/wp/cms/add-custom-fields-with-functions-php/

    今回の質問は、すでにあるカスタム投稿タイプのバックエンドにこれを追加したい場合の書き方です。
    (BBPressで作る掲示板用の「topic」というカスタム投稿タイプです。)

    参照サイトさんのコードには次のようにあります。

    // カスタムフィールドの追加
    add_action( 'admin_menu', 'add_custom_field' );
    function add_custom_field() {
    add_meta_box( 'custom-item_name', '商品名', 'create_item_name', 'post', 'normal' );
    }

    なのでこのposttopicにして次のように変更すれば追加はできました。

    add_meta_box( 'custom-item_name', '商品名', 'create_item_name', 'topic', 'normal' );

    しかし私は次にようにフロントエンドからカスタムフィールドを保存・出力しています。

    // フロンドエンドからのtopic作成時に入力項目を保存
    add_action( 'bbp_new_topic', 'bbp_save_topic_extra_fields', 10, 1 );
    add_action( 'bbp_edit_topic', 'bbp_save_topic_extra_fields', 10, 1 );
    function bbp_save_topic_extra_fields( $topic_id = 0 ) {
      if (isset($_POST) && $_POST['fluits']!='') {
        update_post_meta( $topic_id, 'fluits', $_POST['fluits'] );
      } 
    }
    // 出力部分にこう
    // echo get_post_meta($post->ID, 'fluits', true);

    質問をまとめます。

    ➀この私のケースでは、先述した下記コードをどのように書き直せばバックエンドでの動作は正常になるでしょうか?
    どこに何が当てはまり、どこにfluitsを書けばいいのか、よくわからないのです…。

    add_meta_box( 'custom-item_name', '商品名', 'create_item_name', 'topic', 'normal' );

    ➁また私のケースでは、上記コード以外に参照サイトさんのコードで変更すべき点はございますでしょうか?

    以上2点についてお詳しい方がいらっしゃいましたら、どうぞ宜しくお願い致します。

    • このトピックは punilerが2 ヶ月、 1 週前に変更しました。
  • このトピックに返信するにはログインが必要です。