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 投稿
2 ユーザー
6 Reactions
185 表示
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.2
カテゴリー数:19
タグ数:150
ユーザー数:1
----------------------------------------------

●現象

[Cocoon設定]→[カルーセル]
以下の説明があるが、期待動作とならない。
人気記事を有効にしカテゴリーもしくはタグを選択した場合は、すべて合算し「カルーセルの並び替え」で設定した順番で表示されます

人気記事を「本日」とした(図1参照)。
カテゴリーで「WordPress」を選択したので、本日の人気記事+カテゴリー「WordPress」の記事がカルーセルに設定されると思い。
実際は、カテゴリー「日記」が混じっている(図2参照)。


●補足

「カテゴリー」ではなく「タグ」を選択すると、何もカードが表示されなくなった。
本日の人気記事+指定したタグの記事がカルーセルに設定されると思い。


   
わいひら reacted
引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

●確認結果

以下の直前で$argsをダンプ。

https://github.com/xserver-inc/cocoon/blob/e4c1b1f5ac67733bdf5da88951fb022f62f37a9d/tmp/carousel.php#L36

合算ではなく、人気記事とカテゴリー、タグの絞り込みでは?

●人気記事「本日」

投稿61573、60788の記事を表示。

array(5) {
  ["tag__in"]=>
  array(1) {
    [0]=>
    string(2) "39"
  }
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["post__in"]=>
  array(2) {
    [0]=>
    string(5) "61573"
    [1]=>
    string(5) "60798"
  }
}

●カテゴリーだけ

カテゴリー228の記事を表示。

array(5) {
  ["tag__in"]=>
  string(0) ""
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["category__in"]=>
  array(1) {
    [0]=>
    string(3) "228"
  }
}

●タグだけ

タグ39の記事を表示。

array(5) {
  ["tag__in"]=>
  array(1) {
    [0]=>
    string(2) "39"
  }
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["category__in"]=>
  string(0) ""
}

●カテゴリー+タグ

カテゴリー228 & タグ39を持つ記事となり、表示されない。

array(5) {
  ["tag__in"]=>
  array(1) {
    [0]=>
    string(2) "39"
  }
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["category__in"]=>
  array(1) {
    [0]=>
    string(3) "228"
  }
}

●人気記事「本日」+タグ

人気記事 & タグ39ではないので、表示されない。

array(5) {
  ["tag__in"]=>
  array(1) {
    [0]=>
    string(2) "39"
  }
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["post__in"]=>
  array(2) {
    [0]=>
    string(5) "61573"
    [1]=>
    string(5) "60798"
  }
}

●人気記事「本日」+カテゴリー

get_access_ranking_recordsで絞り込まれ、記事がない。
結果、全記事が対象なってしまう。(前述の図2)

array(5) {
  ["tag__in"]=>
  string(0) ""
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["post__in"]=>
  array(0) {
  }
}

   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

ご指摘ありがとうございます。
$args内で合わさって算出されるので、合算という言葉を使いましたが、確かに分かりづらいかもしれません。

「人気記事を有効にしカテゴリーもしくはタグを選択した場合は、全ての条件を持つ記事が絞り込まれ、「カルーセルの並び替え」で設定した順番で表示されます。条件を絞り込みすぎるとカルーセルに記事が表示されない可能性もあるのでご注意ください。」

とかだとどうでしょうか。


   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

投稿者:: @chu-ya

●人気記事「本日」+カテゴリー

上記ですが、人気記事でもなく、カテゴリーでもなく、全記事が対象となってしまうので、このケースはバグだと思います。

以下の人気記事の条件にカテゴリーが含めようとするので、無理があり。

https://github.com/xserver-inc/cocoon/blob/2a6e06f825b0948f075859ebf0dc814c6897d94a/tmp/carousel.php#L21-L30

仕様を見直し、以下の条件とした方が、一番分かりがいいかとと思いました。

  • 人気記事
  • カテゴリーごと
  • タグごと

   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

投稿者:: @chu-ya

仕様を見直し、以下の条件とした方が、一番分かりがいいかとと思いました。

  • 人気記事
  • カテゴリーごと
  • タグごと

処理の方はそのようにできるけど、説明文のUIはどうしたらよいものかと思いました。

 

ラジオコントロールを追加して、どれかを選ばせるUIにするか。

 

それとも現在のUIはそのままで「人気記事 > カテゴリ > タグ」の優先度でそれぞれ個別に表示されるという旨の説明文を追加するか。

例えば、人気記事の説明文に「人気記事を選択すると、人気記事のみが優先して表示されます。」

カテゴリの説明文に「カテゴリを選択すると、カテゴリーに関連付けられた記事のみが表示されます。(※カテゴリー関連記事を表示させたい場合は、人気記事を選択しないでください)」

タグの説明文に「タグを選択すると、タグに関連付けられた記事のみが表示されます。(※タグ関連記事を表示させたい場合は、人気記事・カテゴリーを選択しないでください)」

みたいに書くとか。

 

ただいずれの方法もちょっと分かりづらいかもしれません。

この投稿は1か月前 2回ずつわいひらに変更されました

   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

●変更案

tmp/carousel.phpを以下のように変更する。

https://notepad.pw/share/fPtc3ijPdElC5wTd5AJY


●説明文

ラジオコントロールを追加して、どれかを選ばせるUIにするか。

それとも現在のUIはそのままで「人気記事 > カテゴリ > タグ」の優先度でそれぞれ個別に表示されるという旨の説明文を追加するか。

説明文は言われるように「人気記事、カテゴリー、タグの順に優先され、いずれか一つが表示されます。」とすればいいのでは?

また、ラジオボタンに変更した場合、説明がなくても動作が明確でスッキリします。
しかし既に設定されている場合、影響があるかも知れず。
このため、現状のままチェックボックスが安全かと思います。


カルーセルは意図した投稿IDをカード表示しているわけではないため、リースノートに仕様変更の注意点を記し、再設定してもいいかと思います。


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

投稿者:: @chu-ya

しかし既に設定されている場合、影響があるかも知れず。
このため、現状のままチェックボックスが安全かと思います。

ラジオボタンだとこれが怖いんですよね。
すでにCocoon設定を変更されている方が、戸惑いが少なく移行するためにも、説明文の変更で対応させていただきました。
https://github.com/xserver-inc/cocoon/commit/5f864c8f96914bb90bf041d411bc9d1dbb084df3


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

投稿者:: @chu-ya

説明文は言われるように「人気記事、カテゴリー、タグの順に優先され、いずれか一つが表示されます。」とすればいいのでは?

こちらも追加しておきました。


   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.2
カテゴリー数:19
タグ数:150
ユーザー数:1
----------------------------------------------
人気記事を選択した際、期間中の人気記事がゼロだった。
このとき、post__inはnullとなり、全記事が対象となってしまう。
集計結果がゼロのときは表示しない?

array(4) {
  ["orderby"]=>
  string(9) "post_date"
  ["no_found_rows"]=>
  bool(true)
  ["posts_per_page"]=>
  string(2) "18"
  ["post__in"]=>
  array(0) {
  }
}

   
わいひら reacted
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

ソースを見て気になる点があり。

以下でカテゴリーを反映しており、人気記事 & カテゴリーと絞り込みとなっています。
カテゴリーを取得し、get_access_ranking_recordsに渡す必要はありますか?

https://github.com/xserver-inc/cocoon/blob/2118f99aa56354e8ea0b64bf3fa007021a51d47a/tmp/carousel.php#L25-L26


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

投稿者:: @chu-ya

人気記事を選択した際、期間中の人気記事がゼロだった。
このとき、post__inはnullとなり、全記事が対象となってしまう。
集計結果がゼロのときは表示しない?

こちらは以下の理由から、このままの仕様でいかせていただこうと思います。

  1. 人気記事の数がゼロということはほぼほぼレアケースであるということ(動作確認などで管理者が最良となる出力結果を選ぶと思われるため)
  2. カルーセルに何も表示されない(カルーセルが非表示となる)よりは、何かしら記事が出て微細ながらも回流に貢献した方が良いと思うから

   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17428
 

投稿者:: @chu-ya

カテゴリーを取得し、get_access_ranking_recordsに渡す必要はありますか?

確かに必要ないと思います。削除しておきました。


   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3206
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.2.1
カテゴリー数:19
タグ数:150
ユーザー数:1
----------------------------------------------

人気記事の数がゼロということはほぼほぼレアケースであるということ(動作確認などで管理者が最良となる出力結果を選ぶと思われるため)

拝承。

確かに必要ないと思います。削除しておきました。

対策されていることを確認しました。
本件をクローズとします。


   
返信引用
共有:

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

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

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

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

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

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

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

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