カスタムフィールドに特定の値を自動入力
-
登録型の会員サイトを運営しています。
現在、プロフィールの項目(クリエイター名)をカスタムフィールドで追加しているのですが
各投稿に際して一つづつクリエイター名を入力する手間を省く為、投稿のカスタムフィールドにプロフィールのカスタムフィールドの値を自動で入力できないか
試行錯誤しております。こちらのサイト様を参考にさせて頂き
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を使って
カスタムフィールドを含めていますが
ユーザープロフィールのカスタムフィールド「クリエイター名」が検索に
引っかからないので色々と試行錯誤しておりましたが、
当方の知識では非常に難しい為
投稿のカスタムフィールドであればサイト内検索にひっかかるので
上記質問に至りました。
-
下記のソースを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 様、
他にもご覧頂きご検討下さいました皆様ありがとうございました。
- トピック「カスタムフィールドに特定の値を自動入力」には新たに返信することはできません。