web-dev-qa-db-ja.com

新しいコメントごとに投稿日を更新しますか?

サイトマップ上のLast Modified Dateが常に最新になるように、新しいコメントごとに投稿を更新したいと思います。

これどうやってするの?

ありがとう。

2
Burak Birer

私が理解していることから、コメントがあなたの投稿に残っている時はいつでもあなたは投稿の修正時間を変えたいと思います。このためには、wp_insert_commentフックにフックして投稿の日付を手動で更新する必要があります。

add_action('wp_insert_comment','update_post_time',99,2);
function update_post_time($comment_id, $comment_object) {
    // Get the post's ID
    $post_id = $comment_object->comment_post_ID;
    // Double check for post's ID, since this value is mandatory in wp_update_post()
    if ($post_id) {
        // Get the current time
        $time = current_time('mysql');
        // Form an array of data to be updated
        $post_data = array(
            'ID'           => $post_id, 
            'post_modified'   => $time, 
            'post_modified_gmt' =>  get_gmt_from_date( $time )
        );
        // Update the post
        wp_update_post( $post_data );
    }
}

これはコメントが作成されるたびに投稿のためのリビジョンを作成することに注意してください。

サイトマッププラグインがpost_dateの代わりにpost_modifiedを使用している場合は、代わりにこれを使用できます。

$post_data = array(
    'ID'           => $post_id, 
    'post_date'   => $time, 
    'post_date_gmt' =>  get_gmt_from_date( $time )
);

しかし、これは問題を引き起こし、アーカイブやホームページでの投稿の順序を乱すかもしれません、なぜならそれは投稿の 作成 日付を変更し、変更日ではないからです。

3
Jack Johansson

テーマによっては、メインページの投稿の順序が変わる場合があります。

最近のコメントでページへのリンクを表示する方法があります。

しかし、あなたはあなたのテーマ(あなたがテーマコードを変更したくないので子テーマ、うまくいけば)にコメント保存のフックを使うコードを追加させる必要があるでしょう。たとえば、次のリンクに記載されているように、wp_insert_comment()フックを使用できます。 https://codex.wordpress.org/Plugin_API/Action_Reference/wp_insert_comment

あなたが物事が起こりたいときに応じて、コメント保存中に使用できる他のフックがあります。

1
Rick Hellewell