本機能を有効にすると、投稿や固定ページの編集画面へ、最終更新日を更新するかどうかのスイッチが表示されます。
スイッチの状態により、以下のように動作します。
- コンテンツの新規追加時に、一旦カスタムフィールドへ現在の日時を格納
- 「更新する」を選択している場合には、「公開」「更新」時点の日時をカスタムフィールドへ再格納し、それを最終更新日データとして反映する
- 「更新しない」を選択している場合には、カスタムフィールドの値は変更せず、「公開」「更新」時には、カスタムフィールドの値を最終更新日として反映する
- 「公開日に戻す」を選択している場合には、「公開」「更新」時にカスタムフィールドの値と最終更新日データを削除する
時事的なコンテンツなど、更新日が大事となるサイトでは有用な機能です。
【応用】コンテンツ移行時に最終更新日を整える
WordPressのエクスポート&インポート機能を使って別のサイトへコンテンツの移動を行った際、基本的に最終更新日は移行されません。
これだと、時事的なコンテンツを別サイトへ移行して公開する場合などには、不都合になるため、移行後に以下のプラグインを使って、手動で最終更新日の変更を行う必要があります。
修正するコンテンツが少なければ手動でもいいとは思いますが、たくさんあったらとても面倒です。
そこで、移行前のサイトで本機能を使っている場合に限った方法ではありますが、より簡単に最終更新日を修正する方法を紹介しておきます。
まずはコンテンツの移行後に移行先のサイトで「Hima Art Utility」プラグインを使用されている場合には、一旦本機能を停止します。
続いて、以下のコードをテーマのfuncitons.phpへ追加します。
function sample_insert_post_data( $data, $postarr ){
$last_modified = get_post_meta( $postarr['ID'], 'last_modified', true );
if ( isset($last_modified) ) {
$data['post_modified'] = $last_modified;
$data['post_modified_gmt'] = get_gmt_from_date( $last_modified );
}
return $data;
}
add_filter( 'wp_insert_post_data', 'sample_insert_post_data', 99, 2 );
これは、本機能の中で、「カスタムフィールドにある値を最終更新日としてデータに保存する」という部分だけを切り取ったものです。
コード追加後、移行先サイトの投稿や固定ページの編集画面を開き、何もしないで「更新」をクリックすると、本機能で格納されていたカスタムフィールドの値(旧サイトで最終更新日のカスタムフィールド値として格納されていたもの)が、最終更新日としてWordPressのデータとして保存されます。
いちいち旧サイトの最終更新日と見比べて1つ1つ修正しなくても編集画面を開いて「更新」をクリックするだけで済むので、移行の際には結構な時短ができると思います。
移行後の最終更新日の修正が終わったら、上記コードを削除し、本機能を有効化すれば処置は完了です。
コメントを残す