WPで記事の更新日を自動で更新する方法を紹介します。
これを作成したきっかけは、「更新日が変更になるだけで、ページとして更新されたと検索エンジンが認識し、検索エンジンからの評価は上がるのか?」を試してみたかったためです。
結果として「更新日は自動的に変わりましたが、検索エンジンに評価されたかはわかりません。」でした。
またこれから紹介する内容は「function.php」に記述する内容となります。そのため少しの記述ミスでサイトが真っ白になってしまう可能性があります。よって必ずバックアップを取り自己責任で行うようにしてください。
記事を更新日を自動更新させるためのコード
- // CRONジョブをスケジュールする関数
- function wpb_schedule_random_update() {
- if (!wp_next_scheduled('wpb_update_random_posts')) {
- wp_schedule_event(time(), 'daily', 'wpb_update_random_posts');
- }
- }
- add_action('wp', 'wpb_schedule_random_update');
- // ランダムに選択された記事の更新日時を変更する関数
- function wpb_update_random_posts_function() {
- // ランダムに3つの記事を取得するクエリ
- $args = array(
- 'post_type' => 'post',
- 'post_status' => 'publish',
- 'orderby' => 'rand',
- 'posts_per_page' => 10, // 10個の記事をランダムに取得
- );
- $random_posts = get_posts($args);
- // 各記事の更新日時をランダムに設定
- foreach ($random_posts as $post) {
- $post_id = $post->ID;
- $random_time = mt_rand(-86400, 86400); // -1日から1日までのランダムな秒数を生成
- $current_time = current_time('mysql');
- $random_update_time = date('Y-m-d H:i:s', strtotime($current_time) + $random_time); // 現在の日時にランダムな秒数を追加
- wp_update_post(
- array(
- 'ID' => $post_id,
- 'post_modified' => $random_update_time,
- 'post_modified_gmt' => get_gmt_from_date($random_update_time),
- )
- );
- }
- }
- add_action('wpb_update_random_posts', 'wpb_update_random_posts_function');
以上のようになります。
追記 少し修正
少し修正をしてみました。
function wpb_schedule_random_update() {
if (!wp_next_scheduled('wpb_update_random_posts')) {
wp_schedule_event(time(), 'daily', 'wpb_update_random_posts');
}
}
add_action('init', 'wpb_schedule_random_update');
// ランダムに選択された記事の更新日時を変更する関数
function wpb_update_random_posts_function() {
// ランダムに10つの記事を取得するクエリ
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'rand',
'posts_per_page' => 10, // 10個の記事をランダムに取得
);
$random_posts = get_posts($args);
// 各記事の更新日時をランダムに設定
foreach ($random_posts as $post) {
$post_id = $post->ID;
$random_time = mt_rand(-86400, 86400); // -1日から1日までのランダムな秒数を生成
$current_time = current_time('mysql');
$random_update_time = date('Y-m-d H:i:s', strtotime($current_time) + $random_time); // 現在の日時にランダムな秒数を追加
wp_update_post(
array(
'ID' => $post_id,
'post_modified' => $random_update_time,
'post_modified_gmt' => get_gmt_from_date($random_update_time),
)
);
}
}
add_action('wpb_update_random_posts', 'wpb_update_random_posts_function');
お断り
冒頭でもお話ししましたが、function.phpに記述する内容であるため、必ずバックアップを取ってから作業をするようにしてください。
万が一問題が発生したとしても、弊社側では責任を負うことができませんのでご了承ください。