投稿一覧ブロックのカスタマイズについて

0
いいねをした人: 居ません
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #139634
    sanu
    参加者
    1

    【お使いの Snow Monkey のバージョン】 25.4.5
    【お使いの Snow Monkey Blocks のバージョン】 20.5.4
    【お使いの Snow Monkey Editor のバージョン】 9.4.0

    ### 実現したいこと

    こちらの質問の続きです。

    カスタム投稿を含めたすべての投稿のアーカイブページを作成したいです。

    お知らせのところにすべての投稿をみるボタンを追加したい形です。

     

    ### 発生している問題

    現在、固定ページを作成後、投稿一覧ブロックを挿入して作成しようと考えていますが、どのようなフックを使えばよいのかやり方がわかりません。

    ### 試したこと

    アクションフィルタの’pre_get_posts’を利用するのかと思いましたがうまく動きません。

    $query->set( ‘post_type’, array( ‘post’,  ‘custom_post’ ) ); として、my snow monkeyに記載しても何も変わらない形です。

     

    以上 よろしくお願いします。

    0
    いいねをした人: 居ません
    #139647
    アバター画像キタジマ タカシ
    参加者
    2421

    「投稿一覧ブロック」というのは Snow Monkey Blocks の最近の投稿ブロックのことですかね?

    そうだとして、最近の投稿ブロックはあくまで「お知らせ等を数件出す用」のブロックなので、最近の投稿ブロックを使ってページとしての記事一覧をつくることはできません。

    また、最近の投稿ブロックのクエリを書き換えるフックは snow_monkey_recent_posts_widget_args になります。pre_get_posts はそのページ自体のクエリを書き換えるフックです。

    ということで、やるとしたら下記のいずれかになるのかなと思います。

    1. その固定ページ用のオリジナルテンプレートをつくり、PHP でクエリの発行、記事の取得から出力まで全部独自に書く。
    2. その固定ページから、テンプレートパーツ template-parts/archive/entry/entry に適切な引数を渡して何らかの方法で読み込む。

    Snow Monkey テーマ以外での一般的な方法は 1 かなと思います。Snow Monkey なら 2 の方法がとれます。
    僕もまだ試していないので現時点では「何らかの方法」と書いています^^; ので、ちょっとやり方を調べてみます。

    0
    いいねをした人: 居ません
    #139650
    アバター画像キタジマ タカシ
    参加者
    2421

    ショートコードを使う形で考えてみました。下記のコードを My Snow Monkey プラグインか子テーマの functions.php に貼り付けた上で、任意の固定ページに [all_entries_archive] というショートコードを埋め込んでください。

    add_shortcode(
    	'all_entries_archive',
    	function() {
    		query_posts(
    			[
    				'post_type' => array( 'post', 'news' ), // 表示したい投稿タイプを指定
    				'paged'     => get_query_var( 'paged' ),
    			]
    		);
    
    		// template-parts/archive/entry/entry にわたす引数を指定。
    		// 希望に合わせて書き換えてください。
    		$args = array(
    			'_display_archive_top_widget_area' => false,
    			'_display_description'             => false,
    			'_display_entry_header'            => false,
    			'_display_eyecatch'                => false,
    			'_entries_layout'                  => get_theme_mod( 'post-entries-layout' ),
    			'_entries_gap'                     => get_theme_mod( 'post-entries-gap' ),
    			'_force_sm_1col'                   => false,
    			'_infeed_ads'                      => false,
    		);
    
    		ob_start();
    
    		\Framework\Helper::get_template_part(
    			'template-parts/archive/entry/entry',
    			'all-entries',
    			$args
    		);
    
    		wp_reset_query();
    
    		return ob_get_clean();
    	}
    );
    2
    いいねをした人:
    #139776
    sanu
    参加者
    1

    ありがとうございます!!返信が遅れて大変失礼いたしました。

    なかなかテスト環境を開けるタイミングがなく、申し訳ございませんでした!
    キタジマさんが書いてくれたコードをコピペするだけで無事やりたいことができました!
    他にもカテゴリなどを出すようにいろいろ自分でカスタマイズしようと思います。

    0
    いいねをした人: 居ません
    #139787
    アバター画像キタジマ タカシ
    参加者
    2421

    解決できて良かったです!トピックのクローズをお願いします。

    1
    いいねをした人:
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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