コメントが投稿されたら記事の更新日時や公開日時も更新する

「WordPress 記事の更新日時を自由に変更する:改造版」 の記事で、
コメントが投稿されたら記事の更新日時も自動で更新する方法はないですか?

という質問を受けた。

コード的には簡単に書けたので、とりあえず記事として書いておくことにする。


・コメントが投稿されたら記事の更新日時も更新しちゃう

/* 以下、functions.php に追加 */
add_action( 'comment_post', 'my_comment_post', 15, 1 );
function my_comment_post( $comment_ID ) {
    $comment_data = get_comment( $comment_ID );

    $my_data = array();
    $my_data['ID'] = $comment_data->comment_post_ID;
    $my_data['post_modified'] = $comment_data->comment_date;
    $my_data['post_modified_gmt'] = $comment_data->comment_date_gmt;

    wp_update_post( $my_data );
}

・コメントが投稿されたら記事の公開日時も更新しちゃう

/* 以下、functions.php に追加 */
add_action( 'comment_post', 'my_comment_post', 15, 1 );
function my_comment_post( $comment_ID ) {
    $comment_data = get_comment( $comment_ID );

    $my_data = array();
    $my_data['ID'] = $comment_data->comment_post_ID;
    $my_data['post_date'] = $comment_data->comment_date;
    $my_data['post_date_gmt'] = $comment_data->comment_date_gmt;

    wp_update_post( $my_data );
}

・コメントが投稿されたら記事の公開日時と更新日時の両方とも更新しちゃう

/* 以下、functions.php に追加 */
add_action( 'comment_post', 'my_comment_post', 15, 1 );
function my_comment_post( $comment_ID ) {
    $comment_data = get_comment( $comment_ID );

    $my_data = array();
    $my_data['ID'] = $comment_data->comment_post_ID;
    $my_data['post_date'] = $comment_data->comment_date;
    $my_data['post_date_gmt'] = $comment_data->comment_date_gmt;
    $my_data['post_modified'] = $comment_data->comment_date;
    $my_data['post_modified_gmt'] = $comment_data->comment_date_gmt;

    wp_update_post( $my_data );
}

もし、必要なら上記3パターンのうち、ひとつだけ選んで、
functions.php に追加すれば、できます。

でも、特殊な事例なので、たぶん需要はないw

WordPress

Posted by るな