サポート » 使い方全般 » コメントのみ抽出について

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 Tsuyoshi.

    (@andante0727)

    <?php
    /**
     * カスタムクエリの作成
     */
    add_filter('posts_join', 'comment_search_join' );
    function comment_search_join( $join ) {
    	global $wpdb;
    
    	// 検索処理の時、コメントがついている投稿のみ取得
    	if( is_search() ) {
    		$join .= " INNER JOIN {$wpdb->comments} ON {$wpdb->posts}.ID = {$wpdb->comments}.comment_post_ID ";
    	}
    
    	return $join;
    }
    function commented_posts($where) {
        global $wpdb;
        if (条件) {
            $where .= " AND $wpdb->posts.comment_count > 0";
        }
        return $where;
    }
    add_filter('posts_where_paged', 'commented_posts');
    
    function change_posts_per_page($query) {
        if (is_admin() || !$query->is_main_query()) return;
        if (条件) {
            $query->set('posts_per_page', 10);
        }
    }
    add_action('pre_get_posts', 'change_posts_per_page');

    pre_get_post フックだけでは、コメント数で絞り込めないので、関数二つになっています。もっといい方法があるかもしれません。Codex のページは以下です。posts_where_paged の公式ドキュメントは見つかりませんでした。wp-content/query.php をご覧ください。

    Plugin API/Filter Reference/posts where

    Plugin API/Action Reference/pre get posts

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「コメントのみ抽出について」には新たに返信することはできません。