サポート » テーマ » P2というテーマでコメントがついた投稿を上に上げる

  • 解決済 hey-c

    (@hey-c)


    P2というテーマを掲示板として使っています。
    投稿に対してコメントがついた場合、そのスレッドを上に上げる方法はありますでしょうか。
    P2でなくとも「コメントがついた投稿(ステータス)を上に上げる」という方法があると応用が効くかもしれません。
    どうぞよろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    1. 投稿の並び順を更新時間順にする(つまり投稿を更新したらスレッドは上にあがる)
    2. コメントがついたら(承認されたら)、投稿の更新時間をコメントの投稿時間で上書きする

    で、どうでしょうか?
    ただし、コメントを削除した場合に下げるようにはしていません。
    コメントの最新日時をカスタムフィールドに持たせる方法などもありますが、複雑化するため、上記の方法で問題なければ、この方法で良いかと思います。

    function default_orderby_modified( $wp_query ) {
    	if ( ! is_admin() && $wp_query->is_main_query( $wp_query ) ) {
    		if ( ! $wp_query->get( 'orderby' ) ) {
    			$wp_query->set( 'orderby', 'modified' );
    		}
    	}
    }
    add_action( 'pre_get_posts', 'default_orderby_modified' );
    
    function update_post_modified_by_comment_approved( $comment_id, $comment ) {
    	$post = get_post( $comment->comment_post_ID );
    	if ( $comment->comment_approved == 1 && $post && $post->post_modified < $comment->comment_date ) {
    		wp_update_post( array( 'ID' => $comment->comment_post_ID, 'post_modified' => $comment->comment_date, 'post_modified_gmt' => $comment->comment_date_gmt ) );
    	}
    }
    add_action( 'wp_insert_comment', 'update_post_modified_by_comment_approved', 10, 2 );
    add_action( 'comment_approved_', 'update_post_modified_by_comment_approved', 10, 2 );
    トピック投稿者 hey-c

    (@hey-c)

    ありがとうございました!うまくいきました!!!とても助かりましたm(_ _)m

    peco

    (@peco)

    jim912様、hey-c様
    非常に参考になる情報をご提供いただき
    誠にありがとうございます。

    上記のコードで更新順に並び替える事ができましたが、
    予約投稿をした場合、表示される日時がおかしくなります。

    WordPressの予約投稿の場合、
    日時の扱いは以下のようになります。

    予約投稿を設定(操作)した日時 = 更新日時
    予約投稿された日時 = 投稿日時

    参考サイト:
    予約投稿した時間と、最終更新時間について

    今回の、更新順に記事を並べるカスタマイズの場合、
    予約投稿を設定した日時が、実際に投稿された日時よりも優先させてしまう為、
    予約投稿を設定した日時が記事一覧に表示されてしまいます。

    もしよろしければ、教えて頂いたコードに、
    以下のような条件も追加していただけますでしょうか?

    1. 投稿の並び順を更新時間順にする(つまり投稿を更新したらスレッドは上にあがる)
    2. コメントがついたら(承認されたら)、投稿の更新時間をコメントの投稿時間で上書きする
    3. (新)予約投稿された場合、予約投稿の設定操作をした時間を、予約投稿された時間で上書きする

    少し分かりにくいかもしれませんが、
    よろしくお願いいたします。

    peco

    (@peco)

    自己解決しましたので、
    ご回答は結構です。

    大変失礼いたしました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「P2というテーマでコメントがついた投稿を上に上げる」には新たに返信することはできません。