Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

カルーセルにカスタム投稿を表示させたい
 
共有:
通知
すべてクリア

[解決済] カルーセルにカスタム投稿を表示させたい

13 投稿
3 ユーザー
6 Reactions
712 表示
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

Cocoon設定のカルーセルでは「投稿」の記事が表示されますが、これをカスタム投稿も表示されるカスタマイズに苦慮しています。
子テーマに「tmp/carousel.php」を設けて、以下の通りとしたところ、記事の投稿がないと
1.記事の投稿がない状態ではカスタム投稿が表示される。
2.記事を投稿すると記事のみ表示されカスタム投稿タイプが表示されなくなり、かつ、wordpressからログアウトするとカルーセルそのものが表示されなくなる。
という状態です。
※「saijo」がカスタム投稿です。
解決方法をご指摘いただきたい(カスタム投稿・記事投稿が両方ともカルーセルに表示されるよう)ところです。
よろしくお願いいたします。
ーーー
$args = array(
'post_type' => array('post', 'saijo'), // カスタム投稿タイプを追加
'tag__in' => get_carousel_tag_ids(),
'orderby' => get_carousel_orderby(), //ランダム表示
'no_found_rows' => true,
'posts_per_page' => get_carousel_max_count(),
'post_status' => array('publish', 'private'), // 公開と非公開の投稿を取得
);
ーーー

----------------------------------------------
サイト名:お葬式 by site
サイトURL: https://sougi.shimin.life
ホームURL: https://sougi.shimin.life
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
スキン:/wp-content/themes/cocoon-master/skins/skin-mixgreen/style.css
WordPressバージョン:6.4.2
PHPバージョン:8.2.14
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
エンコーディング:gzip, deflate, br
言語:ja,en-US;q=0.9,en;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.6.9
カテゴリー数:3
タグ数:1
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.3
style.cssサイズ:1705バイト
functions.phpサイズ:6295バイト
----------------------------------------------
Gutenberg:1
AMP:0
PWA:0
Font Awesome:5
Auto Post Thumbnail:0
Retina:0
ホームイメージ:/wp-content/uploads/2023/03/11592c7a78d86e2f6af0b6f13455cf72.jpg
----------------------------------------------
ブラウザキャッシュ有効化:1
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:1
----------------------------------------------
利用中のプラグイン:
Admin Columns 4.6.1
Advanced Custom Fields 6.2.5
Advanced Editor Tools 5.9.2
BackWPup 4.0.1
Category Order and Taxonomy Terms Order 1.8
Classic Editor 1.6.3
Contact Form 7 5.8.6
Custom Post Type UI 1.15.1
EWWW Image Optimizer 7.2.3
Flying Scripts 1.2.3
Health Check & Troubleshooting 1.7.0
IndexNow 1.0.1
Instant Indexing 1.1.17
Jetpack 13.0
Quick Featured Images 13.7.0
Really Simple SSL 7.2.1
Search & Filter 1.2.16
Shortcodes Ultimate 7.0.1
Simple Custom Post Order 2.5.7
Simple PAY.JP Payment 1.2.0
Site Kit by Google 1.118.0
Site Reviews 6.11.4
What The File 1.6.0
WP-Members 3.4.9
WP-Optimize - Clean, Compress, Cache 3.2.22
WP Fastest Cache 1.2.3
WP Multibyte Patch 2.9
Yoast Duplicate Post 4.5
----------------------------------------------


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3131
 

カスタム投稿を追加し確認してみましたが、表示されました。
書かれているパラメータで問題ないかと思います。

A2:
[Cocoon設定]→[カルーセル]の設定「人気記事」などの設定によるかと思います。
例えば「人気記事」としたので、「投稿」が「saijo」より多く、「投稿」みとなった?
閲覧ユーザ(ログアウト)の時、カルーセルが表示されないのは「非公開」記事のみとなり、クエリーがゼロだからでは?

var_dumpを入れ、WP_Queryへの引数$argsの値を、確認をしてみて下さい。


   
わいひら reacted
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

私も試してみましたが、投稿ページもカスタム投稿ページも表示されます。ただ、非公開記事を含める場合はログインしているか否かの判定が必要な気がします。

また、もう 1 つ気になる点が、tmp/carousel.php を子テーマに設置していらっしゃることです。

カルーセルに表示する記事を変更する場合は、フィルターフックの cocoon_carousel_args をお使いになるのがいいと思います。tmp/carousel.php を子テーマに設置はせず、代わりにこのようなコードを子テーマの functions.php に追加します。

add_filter( 'cocoon_carousel_args', function( $args ) {
  // カスタム投稿タイプを追加
  $args += ['post_type' => ['post', 'saijo']];
  // 公開と非公開の投稿を取得
  $args += ['post_status' => ['publish', 'private']];
  return $args;
});

テンプレートファイルを子テーマに設置した場合、そのファイルが親テーマのアップデートで変更されても、その変更が反映されなくなります。メンテナンスが面倒になるため、HTML を大幅に変更するなどの理由がない限り functions.php での変更がおすすめです。

この投稿は11か月前 2回ずつAkiraに変更されました

   
わいひら reacted
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

chu-ya様、Akira

ありがとうございます。

まず、chu-ya様のアドバイスからvar_dumpを入れてWP_Queryへの引数$argsの値は、想定通りにクエリーが実行されているようです。投稿記事がsaijoより多いことはありません(投稿は2つしかない)。

Akira様のアドバイス通り、tmp/carousel.phpを削除してfunction.phpで動かしてみましたが、やはり同じ状況です。

ただし、なぜか本日になってログアウトすると投稿記事は表示されますが、カスタム投稿のsaijoの記事が表示されないという現象になっています。

プラグインの問題も確認してみましたが、該当するものもないようでした。


   
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

なお、「記事の投稿がない状態ではカスタム投稿が表示される。」ため、クエリーがゼロではないのではないかと思っております。
※記事を下書きにすると表示される。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

@icci さん

ご自身で解決できない場合は、カスタマイズを依頼されるのがいいかもしれません。

参考:Cocoonカスタマイズを依頼するならば是非こちらに【Cocoon対応されている方々】

少なくとも以下の点が不明なため、今のところ答えを提示できません。

  • Cocoon 設定 > カルーセルの各設定項目はどうなっているのか?
  • カスタム投稿でカテゴリーやタグを使えるようにしているのか?
  • カルーセルの WP_Query に渡す引数は、最初にお書きになったもので全てか?

   
わいひら reacted
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

Akira

ありがとうございます。

ご指摘の不明点ですが、以下の通りです。

・カルーセルの設定
フロントページのみで表示、スマートフォンで表示、人気記事(全期間)にチェック、カテゴリーにはチェックを入れず
※人気記事は期間を全て変更して確認していますが、現象は同じでした。また、カテゴリーへのチェックの有無も両方試しておりますが同様です。
投稿記事にタグを設定しておらず、ここは表示されていません。カルーセルの並び替えは更新日(降順)、最大表示数は30、カードの枠線の表示およびオートプレイを実行はいずれもチェック、インターバルは5秒です。
・カスタム投稿ではカスタムタクサノミーを4つ設定し、全ての記事にカテゴリーが入っています。しかし、カルーセルの設定にはカスタム投稿のカスタムタクソノミーが表示されていません。
・書いているものは、以外ありません。また、ご助言の内容をfunction.phpに記載しているのみです。

もし、なんらか分かるようであればアドバイスを頂戴できれるとありがいです。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

@icci さん

Cocoon 設定 > カルーセルで「人気記事」を選択していらっしゃると仮定し話を進めます。

※「カテゴリー」を選択している場合は、話が違ってきます。

疑問点が 2 つあります。

① まだ子テーマに tmp/carousel.php はありますか?可能であれば、子テーマから tmp/carousel.php を削除してください。

「人気記事」を選択した場合は、Cocoon デフォルトでは post__in が引数に追加されます。

考: https://github.com/xserver-inc/cocoon/blob/669f05ae5e0cb51b7cefc550ab5cf6307e0d0daa/tmp/carousel.php#L30

子テーマに tmp/carousel.php がある場合は、post__in がちゃんとあるのか分からないです。

② 非公開記事をカルーセルに含めるようお書きになっています。

'post_status' => array('publish', 'private'), // 公開と非公開の投稿を取得

 

ただ、非公開の記事は、人気記事には含まれません。公開している記事のみ人気記事に含まれます。

参考: https://github.com/xserver-inc/cocoon/blob/669f05ae5e0cb51b7cefc550ab5cf6307e0d0daa/lib/page-access/access-func.php#L348

そのため、カルーセルの WP_Query の引数に post_status を追加するだけでは意味がありません。非公開記事を人気記事に含めるには wrap_joined_wp_posts_query() の変更もしないといけません。

そもそも非公開記事をカルーセルに含める必要はあるのでしょうか?

この投稿は11か月前 2回ずつAkiraに変更されました

   
わいひら reacted
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

Akira

調査いただきありがとうございます。

まず、tmp/carousel.phpについてはfunction.phpへの記述をご指南いただいた際に削除しており子テーマには存在していません。

人気記事に関してですが、このチェックを外すと全てが表示されなくなってしまいます(表示されていたpostの記事も表示されなくなり、カルーセルそのものが消える)。
このため、必要があるわけではないのですが、チェックを入れないとカルーセルが動かないものだと理解してチェックしておりました。

なお非公開記事ですが、ご指摘の通り含める必要はありません。
※ご指摘の通りと思いますので、以下の部分を削除しました。
// 公開と非公開の投稿を取得
$args += ['post_status' => ['publish', 'private']];


   
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

※投稿記事が3件以上あっても2件しか表示されなかったため、function.phpの記述を以下の通り修正しました(この点は修正されました)。

add_filter( 'cocoon_carousel_args', function( $args ) {
// カスタム投稿タイプを追加
$args['post_type'] = array( 'post', 'saijo' );
return $args;
});

しかし、やはりカスタム投稿のsaijoの記事は表示されない状況です。


   
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

Akira

頂いたコードに、以下の追記をしてみたら全て表示されるようになりました。
ーーー
add_filter('cocoon_carousel_args', function($args) {
// カスタム投稿タイプを追加
$args['post_type'] = array('post', 'saijo');

// post__in パラメータを削除
unset($args['post__in']);

return $args;
});
ーーー

どうやら解決したようで、ありがとうございました。
何か問題がありますようでしたら、ご指摘いただければ幸いです。


   
わいひら reacted
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

@icci さん

人気記事である必要がないのであれば、何も問題ありません。


   
わいひら reacted
 icci
(@icci)
Eminent Member Registered
結合: 2年前
投稿: 17
トピックスターター  

Akira

最後までご確認いただきありがとうございました。

 


   
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました