実現したいこと
お世話になります。
下記のようにしてカスタム投稿で更新した時だけ、カスタムフィールドを書き換えたいのですが、うまく動いていないようです。
発生している問題・分からないこと
そもそも$post->IDが取れてなさそうなのですが、どこかが間違っているのかわからず。
ご教示いただければ幸いです。
該当のソースコード
php
1 add_action( 'publish_to_publish', function( $post ) { 2 $post_type = $post->post_type; 3 $post_id = $post->ID; 4 update_post_meta( $post_id, 'data', $post_type ); 5 } );
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
検証のため、いろいろそぎ落としてここまで内容減らしましたが、やはり動かないのでそもそも書き方が間違っているのかと思いましたが、'publish_to_publish'の場合は、$postの値が想定したものと違うものが入っているのでしょうか。
補足
特になし
実際に動かしたわけではなく、机上調査ですが、
https://developer.wordpress.org/reference/functions/wp_transition_post_status/
を読む限り、publish_to_publishはサポートされていないと思います。
do_action( "{$old_status}_to_{$new_status}", $post );に対応しているのは、「draft_to_publish」「publish_to_trash」「pending_to_draft」のようです。
(読み間違いでしたら、ごめんなさい)

回答2件
あなたの回答
tips
プレビュー