質問編集履歴

2

追記

2018/10/10 06:23

投稿

kuroinekosuki
kuroinekosuki

スコア7

test CHANGED
File without changes
test CHANGED
@@ -55,3 +55,49 @@
55
55
  通常投稿(post)やbook以外のカスタム投稿が更新されたとき:通常通りの仕様で最終更新日変更
56
56
 
57
57
  この説明で伝わりますでしょうか?お手数をおかけします。よろしくお願いいたします。
58
+
59
+
60
+
61
+
62
+
63
+ **追記3
64
+
65
+ 現在以下のようなコードを書いています。
66
+
67
+ カスタム投稿(book)の場合、というif文は問題なく動いているのですが、
68
+
69
+ その後のカスタムフィールドの中身の比較のところでやはり躓いています。
70
+
71
+ 間違っている部分おわかりになれば、ご教示いただけると幸いです。
72
+
73
+ ```PHP
74
+
75
+ function section_post_modified( $data, $postarr ) {
76
+
77
+ global $post;
78
+
79
+ $post_id = $post->ID;
80
+
81
+ if ( $data['post_type'] == 'book') {
82
+
83
+ $book_val = get_post_meta( $post_id, 'book_author');
84
+
85
+ $book_new = $_POST['book_author'];
86
+
87
+ if( $book_val == $book_new ){
88
+
89
+ unset( $data["post_modified"] );
90
+
91
+ unset( $data["post_modified_gmt"] );
92
+
93
+ }
94
+
95
+ }
96
+
97
+ return $data;
98
+
99
+ };
100
+
101
+ add_filter( 'wp_insert_post_data', 'section_post_modified', 10, 2 );
102
+
103
+ ```

1

ご質問に対する追記

2018/10/10 06:23

投稿

kuroinekosuki
kuroinekosuki

スコア7

test CHANGED
File without changes
test CHANGED
@@ -25,3 +25,33 @@
25
25
  もし実現可能なのであれば、ご教示いただけますと幸いです。
26
26
 
27
27
  何卒よろしくお願いいたします。
28
+
29
+
30
+
31
+
32
+
33
+ **追記
34
+
35
+ お返事ありがとうございます。調べて「チェックを入れてから更新ボタンを押したときだけ最終更新日を更新する」という処理を公開してくださっている方のページを見つけて、そちらの処理を一度入れてみました。
36
+
37
+ これをチェックを入れたときではなく、カスタムフィールドが書き換えられたときという条件に変更すればよいのかと思ったのですが、「カスタムフィールドが書き換えられたとき」をどのように判別すればよいのかというところで止まってしまいました。
38
+
39
+
40
+
41
+
42
+
43
+ **追記2
44
+
45
+ 説明が不足しておりまして大変申し訳無いです。カスタム投稿もカスタムフィールドも使っております。
46
+
47
+ bookというcustom post typeがあり、そのなかでbook_authorというcustom fieldsがあります。
48
+
49
+
50
+
51
+ カスタム投稿(book)の特定のカスタムフィールド(book_author)に変更があったとき:最終更新日変更
52
+
53
+ カスタム投稿(book)の本文または他のカスタムフィールドが書き換えられたとき:最終更新日を更新しない
54
+
55
+ 通常投稿(post)やbook以外のカスタム投稿が更新されたとき:通常通りの仕様で最終更新日変更
56
+
57
+ この説明で伝わりますでしょうか?お手数をおかけします。よろしくお願いいたします。