サポート » 使い方全般 » カスタムフィールドに特定の値を自動入力

  • 解決済 ga_ll

    (@ga_ll)


    登録型の会員サイトを運営しています。

    現在、プロフィールの項目(クリエイター名)をカスタムフィールドで追加しているのですが
    各投稿に際して一つづつクリエイター名を入力する手間を省く為、

    投稿のカスタムフィールドにプロフィールのカスタムフィールドの値を自動で入力できないか
    試行錯誤しております。

    こちらのサイト様を参考にさせて頂き
    http://webcake.no003.info/webdesign/wordpress-save-post-get-api.html

    下記のソースをfunctions.phpに入れましたが
    反応しないので、お知恵を拝借出来ればと思い投稿させて頂きました。

    add_action( 'save_post' , 'action_save_post', 99, 2 );
    function action_save_post( $post_id, $post ) {
    
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
    
            return $post_id;
        } elseif ( !empty( $_POST ) ) {
    
            $aID = get_the_author_meta('ID');
            $creator = the_field('creator', 'user_' . $aID);
    
            update_post_meta( $post_id, 'creator-name-postfield',  $creator );
    
        }
    }

    ユーザープロフィールのカスタムフィールド名 creator の値を
    投稿のカスタムフィールド名 creator-name-postfield に自動入力したいです。

    補足
    サイト内検索にSearch Everythingを使って
    カスタムフィールドを含めていますが
    ユーザープロフィールのカスタムフィールド「クリエイター名」が検索に
    引っかからないので色々と試行錯誤しておりましたが、
    当方の知識では非常に難しい為
    投稿のカスタムフィールドであればサイト内検索にひっかかるので
    上記質問に至りました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 下記のソースをfunctions.phpに入れましたが
    反応しないので、お知恵を拝借出来ればと思い投稿させて頂きました。

    に誤りがありました。

    厳密には、カスタムフィールドは作成されますが
    値が入力されていませんでした。

    宜しくお願いします。

    度々失礼致します

    update_post_meta( $post_id, 'creator-name-postfield', $creator );

    の個所を

    update_post_meta( $post_id, 'creator-name-postfield', 'テスト' );

    と書き直すと
    カスタムフィールド creator-name-postfield の値が テスト となる為、

        $aID = get_the_author_meta('ID');
            $creator = the_field('creator', 'user_' . $aID);

    の記述に問題があると思われます。
    引続き自分でも調べておりますが、解決策がありましたら
    ご教示願えると幸いです。

    advanced custom fieldsでは
    $creator = the_field('creator', 'user_' . $aID);
    は出力となるので
    $creator = get_field('creator', 'user_' . $aID);
    でどうでしょうか?

    jdbb様 書き込み頂きありがとうございます。

    上記コードを試してみましたが残念ながらカスタムフィールドの値は空でした。

    $aID = get_the_author_meta('ID');

    を試しに

    $creator = get_the_author_meta('ID');

    と書き換えてカスタムフィールドの値に
    ユーザーIDが入るか?を確認してみましたが

    記事を更新してもカスタムフィールドの値が空なので
    どうやらユーザーIDすら取得できていないみたいです。

    引き続き自分なりに調べておりますが
    解決策ありましたらご教示頂けると幸いです。

    解決しました。

    http://ja.forums.wordpress.org/topic/15527?replies=4
    を参考にさせて頂き

    $aID = $post->post_author; でユーザーIDを取得し

    $creator = get_the_author_meta( ‘creator’, $aID ); としました。

    需要があるかどうかわかりませんが
    一応解決したコードをのせておきます。

    add_action( 'save_post' , 'action_save_post', 99, 2 );
    function action_save_post( $post_id, $post ) {
    
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
    
            return $post_id;
        } elseif ( !empty( $_POST ) ) {
    
    	$aID = $post->post_author;
    
    	$creator = get_the_author_meta( 'creator', $aID );
    
            update_post_meta( $post_id, 'creator-name-postfield',  $creator );
    
        }
    }

    書き込み頂きました jdbb 様、
    他にもご覧頂きご検討下さいました皆様ありがとうございました。

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