「snow_monkey_related_posts_args」の検索結果

5件の結果を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    検索結果
  • 【お使いの Snow Monkey のバージョン】バージョン: 14.0.4
    【お使いの Snow Monkey Blocks のバージョン】
    【お使いの Snow Monkey Editor のバージョン】
    【お使いのブラウザ】
    【当該サイトのURL】

    ### 実現したいこと

    関連記事のクエリーとして新たに作成する。
    – 記事に該当するメインカテゴリー(Yoast SEOを利用)より、最新の4記事のIDをget_postsを利用して取得
    – opotionに保存した特定の記事ID2本文を先に取得した最新記事の2記事目と4記事目に混ぜ込みたい。

    – snow_monkey_related_posts_args フックに掛ける関数にて上記の作業を行い、出来上がった6記事分のIDをpost__inにて$argに設定する。

    ### 発生している問題

    snow_monkey_related_posts_args フックに掛ける関数にてget_postsを行っており、それが重複するということで、slow quaryとして検知された(Quary Monitor利用)。

    ### 試したこと

    などを参考に

    下記のコードで試したところ

    add_filter(
    	'snow_monkey_related_posts_args',
    	function( $_args ) {
    		// 最大数の変更
    		var_dump('goge');
    		$_args[ 'posts_per_page' ] = 1;
    		return $_args;
    	}
    );

    添付画像のように、2回ver_dumpが実行された

    #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
    いいねをした人: 居ません
    #53985

    返信が含まれるトピック: 関連記事の表示件数を増やしたい。

    Kmical Lights
    閲覧者
    229

    my snow monkeyに下記を加えてお試しください。

    add_filter( 'snow_monkey_related_posts_args',
    	function( $_args ) {	
    		// 最大数の変更
    		$_args[ 'posts_per_page' ] = 12;
    		return $_args;
    	}
    );

    関連記事に該当する記事件数が12件未満の場合は、必ずしも12件表示される訳では無いので、
    最大数として12件表示する形となります。

    もし、12件固定で出したい場合は関連記事として該当させる条件も変更する必要があるかもしれません。
    その場合は再度返信などでご質問ください

    4
    いいねをした人: 居ません
    #13646
    Hatsuki
    閲覧者

    【お使いの Snow Monkey のバージョン】v5.6.0
    【お使いのブラウザ】Safari
    【当該サイトのURL】https://not-wiz.net/

    ———-

    どもー(笑)
    ちょっと使い方に関してなんですが、
    例えば、関連記事の最大数を変更したい場合と、記事一覧とは別にスタイルを変更したい場合って
    下記のような形で書けば出来ると思うんですが、

    function _load() {
    	add_filter(
    		'snow_monkey_related_posts_args',
    		[ __CLASS__, '_snow_monkey_related_posts_args' ]
    	);
    	add_filter(
    		'snow_monkey_get_template_part_template-parts/content/related-posts',
    		[ __CLASS__, '_related_posts' ],
    		10,
    		2
    	);
    }
    
    public static function _snow_monkey_related_posts_args( $_args ) {
    	if ( ! isset( $_args[ 'post_type' ] ) || 'post' !== $_args[ 'post_type' ] ) {
    		return $_args;
    	}
    	// 関連記事の最大数の変更
    	$_args[ 'posts_per_page' ] = 3;
    
    	return $_args;
    }
    
    public static function _related_posts( $_name, $_vars ) {
    	ob_start();
    	\Framework\Helper::get_template_part( 'template-parts/content/related-posts' );
    	$_html = ob_get_clean();
    	// 関連記事のスタイルをリッチメディアに変更
    	$_html = mb_ereg_replace(
    		'<ul class="c-entries c-entries--(rich-media|simple|text)">',
    		'<ul class="c-entries c-entries--rich-media">',
    		$_html
    	);
    	echo $_html;
    }

    何か微妙過ぎるやり方ですが、気にせず(笑)
    それで、いちいちフックの中を変えるのも保守的にも微妙だったので、カスタマイザーを拡張しようと思ってます。
    カスタマイザーの値は、これらの部分にget_theme_modで値を取ったのをこれらに上書きするようにすれば出来てはいます。

    ただ、

    アーカイブのカスタマイザー設定みたいに、投稿ページの時のみに該当のカスタマイザーを設定する方法と、
    編集ボタンを押すと、追加しているカスタマイザー設定を表示する(関連記事の項目あたりに出したい)

    ってのが解らないので、その使い方を質問させてください。(本題です)

    rich_media、simple、text以外に項目を増やして、オリジナルスタイルを追加していくとかもカスタマイザー弄れば可能っぽいですが、この辺はあまり触らない方が良かったりしますかね…?

    #13006

    返信が含まれるトピック: 関連記事の表示設定

    キタジマ タカシ
    参加者
    1318

    my-snow-monkey プラグイン、もしくは子テーマの functions.php に、条件を変更するコードを書くことで変更できます。

    こんな感じでどうでしょう?

    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' ] );
            $tax_query[] = [
                'taxonomy' => 'category',
                'field'    => 'term_id',
                'terms'    => $category_ids,
                'operator' => 'IN',
            ];
    
            $args['tax_query'] = $tax_query;
            return $args;
        }
    );
    0
    いいねをした人: 居ません
5件の結果を表示中 - 1 - 5件目 (全5件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ