サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
トピックスターター 2025年1月29日 16:19
素晴らしいテーマを使わせていただいて、ありがとうございます。
カテゴリID:13は単語集です。固定ページにおいて、記事の投稿日、更新日ではなく記事タイトルで並べ変えをおこないたい。
以下のコードを追加し、カテゴリーID:13の場合にタイトルで並べ変えを行います。
function twpp_change_sort_order( $query ) { if ( is_admin() || ! $query->is_main_query() ) { return; } // カテゴリーID13のアーカイブページの場合 if ( $query->is_category(13) ) { $query->set( 'order', 'ASC' ); $query->set( 'orderby', 'title' ); } } add_action( 'pre_get_posts', 'twpp_change_sort_order' );
cocoonのnew_listショートコードでoderを付けない場合にはディフォルトとなりますが、上記のようなカスタムソートを使用することはできませんか?
他の手段でも
1.記事の並びはタイトル順
2.大きなサムネイル画像とタイトル、スニペットを表示したい。
3.記事数が増えた場合には、ページ分けを行いたい。
やりたいこと
new_listのショートコードでタイトル順記事を表示したい。
20記事毎にベージを分け、次のページでnew_list offset=20でページネーションを作成したい。
以上、よろしくお願いいたします。
トピックスターター 2025年1月29日 16:57
html-forms.php内のfunction generate_widget_entries_tagにカテゴリID13でorderbyを書き換えるように変更しました。
お騒がせいたしました。
if ($order) { if (in_array(13, $cat_ids)) { $args += array( 'orderby' => 'title', 'order' => 'ASC', ); } else { $args += array( 'order' => strtoupper($order), ); } }
2025年1月29日 17:47
●回答
new_listを用い固定ページを作らなくても、単にカテゴリーID=13のカテゴリー一覧ページをタイトルA-Z順とすればいいのでは?
add_action('pre_get_posts', function ($query) { // メインクエリかつ管理画面ではない場合のみ処理 if (!is_admin() && $query->is_main_query()) { // カテゴリー一覧が、カテゴリーID=13のの場合 if (is_category(13)) { $query->set('orderby', 'title'); $query->set('order', 'ASC'); // 昇順(A→Z) } } });
●ご参考
固定ページで作るなら、Gutenbergエディターのクエリーブロックを活用すれば、ブロックの配置だけで、簡単に好みのカテゴリーのページを作成可能です(図は一例です)。
わいひら reacted
2025年1月29日 18:20
すみません、回答ずれてますね(苦笑)
new_listの場合もフルターフックがあるので、これで変更します。
add_filter('widget_entries_args', function($args) { // カテゴリーが 16 の場合 if (!empty($args['tax_query'][0][0]['terms']) && in_array(16, (array) $args['tax_query'][0][0]['terms'])) { $args['orderby'] = 'title'; // タイトル順 $args['order'] = 'ASC'; // 昇順(A→Z) } return $args; });
わいひら reacted
2025年1月29日 18:52
●追記
20記事毎にベージを分け、次のページでnew_list offset=20でページネーションを作成したい。
「次へページ」のように、ボタンクリック毎にページ送りし、表示することは可能です。
恐れ入りますが、注記にも書かれていますが、コードについてはご自身で調べ対応願います。
JavaScript、PHPカスタマイズはサポート対象外させていただいています。
●仕組み
以下の流れで実現します。(コードは約70行)
ボタンクリック(JavaScript)→(Ajax)→new_list実行・返却(PHP)→(Ajax)→new_listの結果でHTML更新(JavaScript)
Gutenbrgエディターで固定ページを作成
- 「新着記事」ブロックを配置し、例では5ページとし、カテゴリー=13を設定。
- 「新着記事」ブロックの下に「ボタン」ブロックを配置。
PHP(新着記事の表示順を変更)
- 前述のコードで「新着記事」のカテゴリー=13をページをタイトルA-Z順にする。
PHP(Ajax関数)
- wp_ajax_{$action}、wp_ajax_nopriv_{$action}フックを介し、アクションに応じた関数を実行する。
- アクションに応じた関数で、ページ数を受け取り、new_listのoffsetを求める。
- [new_list count=5 offset=(ページ数-1) * 表示数5) cats=13]を実行する。
- 実行した結果をJavaScriptへ返却。
JavaScript
- 「次へページ」ボタンがクリックされたらクリック回数(ページ数)をカウント。
- その都度、Ajaxを用い$actionに応じた関数にページ数を送信。
- Ajaxで返却された、new_listショートコードのHTMLで、元のページを書き換える。
- Ajaxから返却がない場合、ボタンを非表示。
わいひら reacted
2025年1月30日 01:45
●追記
1.記事の並びはタイトル順
2.大きなサムネイル画像とタイトル、スニペットを表示したい。
3.記事数が増えた場合には、ページ分けを行いたい。
上記の要件で、カテゴリー13だけは、他の一覧ページと別表示をさせたい?
new_listのショートコードでタイトル順記事を表示したい。
20記事毎にベージを分け、次のページでnew_list offset=20でページネーションを作成したい。
そのため、固定ページにnew_listを用い別表示とする。
要件を纏めると、固定ページで作る必要がないように思います。
new_listである必要がありますか??
- カテゴリー13のとき、1ページ20件表示を追加。
- カテゴリー13のとき、カードタイプ、スニペット表示を変更。
単なるカテゴリー一覧なので、ページネーションも表示されます。
必要に応じ、[投稿]→[カテゴリー]→カテゴリーの本文で、説明文などを作成すればよく。
カテゴリーの本文入力はクラシックエディターですが、patternショートコードを使えば、Gutenbergエディターで作成した複雑なレイアウトを利用できます。
以下のコードで十分では?
define('MY_CATEGORY_ID', 13); // カテゴリー一覧のページ設定 add_action('pre_get_posts', function ($query) { // メインクエリかつ管理画面ではない場合のみ処理 if (!is_admin() && $query->is_main_query()) { // カテゴリー一覧が、カテゴリーID=13のの場合 if (is_category(MY_CATEGORY_ID)) { $query->set('orderby', 'title'); // タイトル順 $query->set('order', 'ASC'); // 昇順(A→Z) $query->set('posts_per_page', 20); // 1ページ20件表示 } } }); // カードタイプを変更 add_filter('theme_mod_entry_card_type', function($mods) { if (is_category(MY_CATEGORY_ID)) { // entry_card :デフォルト // big_card_first :大きなカード(先頭のみ) // big_card :大きなカード // vertical_card_2 :縦型カード2列 // vertical_card_3 :縦型カード3列 $mods = 'big_card'; } return $mods; }); // スニペット表示を変更 add_filter('theme_mod_entry_card_snippet_visible', function($mods) { if (is_category(MY_CATEGORY_ID)) { $mods = '1'; } return $mods; });
この投稿は22時間前 4回ずつ大門未知子に変更されました
わいひら reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。