サポート » 使い方全般 » 他のレコードのデータを取得しカスタムフィールドに値を自動入力

  • 解決済 kakujirou

    (@kakujirou)


    管理画面の投稿フォームで選択した値から他のレコードのデータを取得しカスタムフィールドに値を自動入力する事は可能ですか?

    例えば
    「会社登録フォーム」で以下のように登録したとします。
    ID:001
    corpName:株式会社XXX商事

    ID:002
    corpName:有限会社XXX通産

    「社員登録フォーム」には
    corpID:セレクトボックスフィールド(フィールドタイプは投稿フィールドでIDを参照)
    corpName:テキストフィールド
    firstName:テキストフィールド・・・社員固有のフィールド

    この状態でcorpIDの001を選択した時に
    corpNameに株式会社XXX商事を自動入力させたいのですが。

    宜しくご教授お願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • sysbird

    (@sysbird)

    WordPresのAjaxの機能を使うと、データを取得したり、自動入力したりすることができます。

    私はこちらの記事がわかりやすかったですよ。
    WordPressでajaxの基本的なやり方 | Shinichi Nishikawa's

    kakujirouさん

    わたくしも、同じようなことをやってますよ(多分)
    私の場合は、効率化のために、アドバンスドカスタムフィールドというプラグインを使用してますが、手段は特にIDを取得できればなんでもよいと思います。

    <?php
    if ( get_field('link_page')) : //アドバンスドカスタムフィールドの場合「get_feild()」違う場合は「get_mata()」
    $corp = get_field('link_page');//カスタムフィールドで選択したページ
    $corp_id = $corp->ID;//IDを取得
    $corp_name = get_post_meta( $corp_id, 'カスタムフィールド', true );//アドバンスドカスタムフィールドの場合「get_feild()」
    //必要であれば余計なソースを削除↓
    $corp_name = preg_replace('!<style.*?>.*?</style.*?>!is', '', $corp_name);//スタイルを削除
    $corp_name = preg_replace('!<script.*?>.*?</script.*?>!is', '',$corp_name);//スクリプトを削除
    $corp_name = strip_tags($corp_name);//タグを削除
    ?>
    
    <h3><?php echo $corp_name; ?></h3>
    <p><?php the_field('社員固有のフィールド'); ?></p>
    
    <?php endif; ?>

    ちなみにですが、私の場合、記事タイトル=会社名にしてるのでカスタムフィールドではなく「$corp->post_title」を使用しました。

    環境がわからなかったので、「$corp」を用いましたが、差支えないようでしたら「$post」などの方が良いかもしれません。

    我流であまり詳しくないので、もっと良いやり方あるかもしれません。
    メタの取得に関しましてはコーデックスのリファレンスをご参考にするとよいと思います。
    <?php $key_1_value = get_post_meta( 76, 'key_1', true ); ?>

    簡単で、すみません。

    スレッド開始 kakujirou

    (@kakujirou)

    sysbirdさま、mura0403さま

    有効な情報を有難うございます。
    Ajax、ACFどちらも色々な事に使えそうですね。
    1つ賢くなりました。
    これでクライアント様を納得させる事ができそうです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「他のレコードのデータを取得しカスタムフィールドに値を自動入力」には新たに返信することはできません。