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カスタマイズ依頼

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

カルーセルで表示している記事一覧にラン...
 
共有:
通知
すべてクリア

[解決済] カルーセルで表示している記事一覧にランキング順位を付けたい

7 投稿
3 ユーザー
5 Reactions
1,918 表示
(@youplus)
Active Member Registered
結合: 2年前
投稿: 6
トピックスターター  

添付画像のようにカルーセルで表示している各記事サムネに順位を付けたいです。

サイドバーだと、管理画面のウィジェットから順位の有無が選択出来ますが、カルーセルの場合、そのような項目がなくそもそもアクセス数による表示ができないかと思います (ランダム、更新順、新着順)。

1. カルーセルの記事一覧をアクセス数による表示順に変更し、順位を表示方法はあるのでしょうか。

2. 1が出来ない場合、カルーセルで表示されているn番目の記事にn位のような形でcss側で表示できるのではと考えています。下記コードなどで試しているのですが、何も表示されていない状態です。n番目の記事を指定できる方法を教えていただきたいです。

.slick-initialized #slick-slide03::before{
    content: "3";
    background: rgba(94, 185, 77, 0.9);
    color: #fff;
    font-size: 14px;
    line-height: 1;
    padding: 4px 8px;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

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

2の回答をします。
●原因
position: absoluteとしているが、基準点(0,0)がカード上でない為、別の位置に移動している。

●対策
以下のコードを追加。
基準位置をカード上にする。

.carousel-entry-card-wrap {
    position: relative;
}

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

カルーセルの記事一覧をアクセス数による表示順に変更し、順位を表示方法はあるのでしょうか。

Cocoon の機能としてはありません。ただ、カスタマイズをすれば可能です。

もっとも簡単な方法を書いておきます。ただ、この方法は、WordPress の 投稿の先頭固定表示 をお使いの場合に人気順になりません。※ 固定した投稿が先頭にくるため。

まず、子テーマの functions.php に以下のコードを追加します。

function get_carousel_orderby() {
	return is_carousel_popular_posts_enable()
		? 'post__in'
		: get_theme_option(OP_CAROUSEL_ORDERBY, 'rand');
}

これで、Cocoon 設定 > カルーセルタブにある「~で集計した人気記事を含める」にチェックが入っている場合は、人気順になります。チェックが入っていない場合は、「カルーセルの並び替え」で選択した順番です。

次に、子テーマの javascript.js に以下のコードを追加します。

{
  const carouselWraps = document.getElementsByClassName('carousel-entry-card-wrap');
  for (const wrap of carouselWraps) {
    const index = wrap.id.replace('slick-slide0', '');
    const span = document.createElement('span');
    span.textContent = Number(index) + 1;
    span.classList.add('carousel-entry-card-index');
    span.setAttribute('aria-hidden', true);
    wrap.appendChild(span);
  }
}

これで各記事に数字が付きます。

あとは、子テーマの style.css に CSS を追加すれば終わりです。

.carousel-entry-card-wrap {
  position: relative;
}

.carousel-entry-card-index {
  background: rgba(94, 185, 77, 0.9);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  padding: 4px 8px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
この投稿は2年前ずつAkiraに変更されました

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

@akira さん

なるほど。
標準機能で人気記事にチェックした場合、oderbyをpost__in(「カルーセルの並び替え」は無効)でも良いように思え。


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

先頭固定表示を無視する方法があったのを思い出しました。

子テーマの functions.php に以下のコードも追加すれば、「~で集計した人気記事を含める」にチェックを入れたカルーセルでは先頭固定が無視されます。※ 先頭固定の記事が、本来の位置で表示されます。

add_filter( 'cocoon_carousel_args', function( $args ) {
	if ( is_carousel_popular_posts_enable() ) {
		$args['ignore_sticky_posts'] = true;
	}
	return $args;
});

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

@chu-ya さん

@Akira さん

回答ありがとうございます。

1および2の回答それぞれ試し、問題なく動作しました!


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

@youplus さん
恐れ入りますが、本件クローズの場合、「解決済み」ボタンのクリックを願います。


   
共有:

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

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

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

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

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

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

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

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