関連記事をカテゴリーとタグで抽出

0
いいねをした人: 居ません
  • このトピックには3件の返信、2人の参加者があり、最後にpangooにより3年、 6ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #58458
    pangoo
    閲覧者
    4

    【お使いの Snow Monkey のバージョン】11.5.5
    【お使いのブラウザ】Google Chrome 85.0.4183.102(64 ビット)
    【当該サイトのURL】https://www.pangoo.jp/

    ===

    やりたいことは以下の通りです。

    • 関連記事をカテゴリーとタグで抽出
    • ANDではなくORで検索(カテゴリーもしくはタグの内、1つでも合致すれば抽出)
    • 更新時間で並び替えて最新のもの12記事を表示

    過去カテゴリーのみ、タグのみで関連記事を抽出するコードが出ており、その中のtax_queryの部分をいじればいいのは分かるのですが、両方となるとどう変えてよいのか良く分からず、質問させていただきました。

    お手数ですがよろしくお願いいたします。

    0
    いいねをした人: 居ません
    #58461
    pangoo
    閲覧者
    4

    たぶん、解決したと思うので、使ったコードを載せます。変なこと書いていないか自信がないので、できれば皆様のチェックを経てから本件はクローズにしたいと思います。よろしくお願いいたします。

    /**
     * 関連記事の関連付け条件をカテゴリー+タグ中で1つでも合致した場合にする
     *
     * @param array $args
     * @return array
     */
    add_filter(
    	'snow_monkey_related_posts_args',
    	function( $args ) {
    		if ( ! isset( $args['post_type'] ) || 'post' !== $args['post_type'] ) {
    			return $args;
    		}
    
    		$category_ids = wp_get_object_terms( get_the_ID(), 'category', [ 'fields' => 'ids' ] );
    		$term_ids = wp_get_object_terms( get_the_ID(), 'post_tag', [ 'fields' => 'ids' ] );
    
    		$tax_query[] = [
    			'relation' => 'OR',
    			[
    				'taxonomy' => 'post_tag',
    				'field' => 'term_id',
    				'terms' => $term_ids,
    				'operator' => 'IN', // 全てのタグが一致する場合。一つでも一致すれば良い場合は IN
    			],
    			[
    				'taxonomy' => 'category',
    				'field' => 'term_id',
    				'terms' => $category_ids,
    				'operator' => 'IN',
    			],
    		];
    
    		$args['tax_query'] = $tax_query;
    		return $args;
    	}
    );
    
    /** 関連記事の表示優先度を更新時間とする */
    add_filter(
    	'snow_monkey_related_posts_args',
    	function( $_args ) {
    		$query_args['order'] = 'DESC';
    		$query_args['orderby'] = 'modified';
    		// 最大数の変更
    		$_args[ 'posts_per_page' ] = 12;
    		return $_args;
    	}
    );
    1
    いいねをした人: 居ません
    #58475
    キタジマ タカシ
    参加者
    2244

    おお! 見た感じ良い感じだと思います!

    2
    いいねをした人: 居ません
    #58481
    pangoo
    閲覧者
    4

    キタジマ様ありがとうございます!
    いつも見るだけなので、少しだけでも貢献出来て嬉しいです!
    本件クローズします。

    2
    いいねをした人: 居ません
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • トピック「関連記事をカテゴリーとタグで抽出」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。