質問: $book_new ){ unset( $data["post_modified"] ); unset( $data["post_modified_gmt"] ); } } return $data; }; add_filter( 'wp_insert_post_data', 'section_post_modified', 10, 2 ); ```
回答: お二人ともありがとうございます!頂いた回答を元にコードを修正してみたところ、うまく動く場合と動かない場合があり、頭を抱えておりましたが、「お二人が書いてくださった部分は間違っていないはず!」と考えてその他の部分を書き換えて動作を試していましたら、なんとか解決しました。 カスタムフィールドの中身が単語などの短いワードだと問題ないのですが、タグ(改行?)が混ざっていた場合は、いくら比較をしても一致しないことがわかりました。 なので、wp_strip_all_tagsでタグを除去してから比較してみたところ、見事一致しました! 100%データが取れていないのが原因だと思っていたので、たいっっっっへん助かりました! (そしてカスタムフィールドの中身にタグが混ざっている場合もあることを記載せず大変申し訳ございません。まさかここに原因があるとは思ってもいなかったので、完全に意識の外でした...。) 以下、四苦八苦したコードです。 ``` function section_post_modified( $data, $postarr ) { global $post; $post_id = $post->ID; if ( $data['post_type'] == 'book') { $book_val = wp_strip_all_tags(get_post_meta( $post_id, 'book_author', true),true); $book_new = wp_strip_all_tags($_POST['book_author'],true); if ( strcmp($book_val, $book_new) == 0 ) { unset( $data["post_modified"] ); unset( $data["post_modified_gmt"] ); } } return $data; }; add_filter( 'wp_insert_post_data', 'section_post_modified', 10, 2 ); ``` 皆様ありがとうございました。これで安らかに眠れます。