こんにちは。
WordPress で記事を新規投稿する際、「投稿日」を過去の日付に設定しても、「最終更新日(post_modified)」が現在の日時になってしまう現象は、WordPressの標準仕様によるものです。
投稿時に「投稿日(post_date)」は自由に変更できますが、「最終更新日(post_modified)」は投稿を保存したタイミングで自動的に現在時刻がセットされるためです。
もし、サイト上に最終更新日が不要であれば、その部分をCSSで非表示にするという方法もあります。根本的な解決ではありませんが、質問でいただいている要望は叶うと思いますが、いかがですか?
他にももっと良いアイディアやご助言があるかもしれません。
浅川さんの「その部分をCSSで非表示にするという方法」も案としてよいと思います☺️
私からは、こちらのプラグインを。
Change Last Modified Date
Using this plugin you can easily change or prevent updating the last modified date for each post. Controlling the last modified date can come in handy when you would like to control “order by last modified” for posts (or custom post type).
[ Google翻訳 ] このプラグインを使えば、各投稿の最終更新日を簡単に変更したり、更新されないようにしたりできます。最終更新日の制御は、投稿(またはカスタム投稿タイプ)の「最終更新日順」の表示を制御したい場合に便利です。
未検証なので「おすすめ」とは申しませんが、ご要望は叶いそうです。
的外れだったらごめんなさいと前置きさせていただいた上で..。
私の環境にて質問の中で提示されているコードを試したところ、新規作成時においても、既にある投稿の編集時においても、「下書き保存」「公開」「更新」いずれの場合でも最終更新日が公開日と同一になりましたので、コード自体はきちんと動作すると思います。
質問文の中の以下の部分について気になったのですが、
新規投稿時では最終更新日を入力することはできず、投稿後に最終更新日を変更することはできますが、一度は投稿しないといけないという手間があります。
また、最終更新日の入力欄も、なぜか月が年の前に来ているので使いづらいです。
少なくとも私の環境では最終更新日を編集する部分は、投稿エディター上にも、クイック編集上にも見当たりません。
そこで「最終更新日の入力欄も、なぜか月が年の前に来ている」というのが気になって調べたところ、「WP Last Modified Info」というプラグインを使った場合の最終更新日の編集フォームではそのようになっているようです(その他のプラグインでもそうした形のものがあるかも知れません)。
このことからの想像ではありますが、最終更新日を変更するようなプラグインを使われている、もしくは、そのような機能を持つテーマを使われているのではないでしょうか?
もしもそれらが有効になっている場合には、処理の優先度から提示されているコードが効かない可能性があります。
また、それらの機能を持つものについて、無効にしてみる、仕様の確認をする等をすることで解決するかも知れません。
トピック投稿者
muro
(@muromuro)
皆様、ご返信ありがとうございます。
いつの間にか「WP Last Modified Info」というプラグインがインストールされておりました。
私以外も操作することがあるサイトなので、他の方が勝手に入れたのだと思われます。
たしかによく考えると、wordpress標準で最終更新日を変更する機能なんてなかった気がします…。更新日のロックの部分もなぜか翻訳されていませんでしたが、これもよく考えたら標準にするにしてはおかしいところでしたね…。
とにかく、原因がわかってよかったです。ありがとうございます。
今回は旧サイトからの記事移植が優先なので、既存記事の最終更新日を変更することは後回しにして、プラグインはいったん止めておきます。
ご報告ありがとうございます。
解決できて良かったですね。
ご助言くださった方々、ありがとうございました!