サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
トピックスターター 2025年1月9日 17:38
読者にも記事一覧にPV数が表示される方法はないかと探していたところ、過去に要望があったので試してみました。
過去の要望「記事ごとのPV数が表示されるようにしたい(読者目線で)」
記事内のユーザーの質問に「新たにカスタマイズが簡単にできるような仕組みを追加しました」と返答がありましたのでアップデートしてみましたがよくわかりませんでした
子テーマのfunctions.phpに以下のコードを追加すると
//インデックスのエントリーカードのPVを公開ページでも表示する add_filter('public_page_entry_card_pv_visible', '__return_true');
記事毎に「本日:100 週:100 月:100 全体:100」と表示されるようになりましたが、全体だけ表示することはできませんか
2025年1月9日 18:31
エントリーカードには、独自の情報を出力するフックもあらかじめ用意されています。
これを活用して、全体集計だけを出力すればよく。
新たに機能を追加する必要はありません。
add_action('entry_card_snippet_after', function() { $all = intval(get_all_access_count()); echo <<< EOF <div class="admin-pv"> <span class="far fa-chart-bar fa-fw" aria-hidden="true"></span> <span class="all-pv"> <span class="all-pv-label">全体:</span> <span class="all-pv-count">{$all}</span> </span> </div> EOF; });
トピックスターター 2025年1月9日 19:18
早々にご返信いただきありがとうございます
全体だけ表示することができました
もし「全体:100」と表示ではなく「全体:100回」や全体を消して「100view」のように表示する場合はどうすれば良いのでしょうか?
<span class="all-pv-label"><?php _e( '全体:', THEME_NAME ) ?></span>
https://github.com/yhira/cocoon/blob/2d9e8de45b671d7cdb24b5eda4966cdccc4aafed/tmp/admin-pv.php
2025年1月9日 20:21
もし「全体:100」と表示ではなく「全体:100回」や全体を消して「100view」のように表示する場合はどうすれば良いのでしょうか?
●答え
public_page_entry_card_pv_visibleを使うならCSSを追加
.admin-pv .fa-chart-bar, /* グラフアイコン */ .today-pv, /* 本日 */ .month-pv, /* 週 */ .week-pv, /* 月 */ .all-pv-label { /* 全体: */ display: none; } /* 全体の後ろに単位追加 */ .admin-pv .all-pv-count:after { content: ' VIEWS'; }
私が書いたフックを使うなら以下
add_action('entry_card_snippet_after', function() { $all = intval(get_all_access_count()); echo <<< EOF <div class="admin-pv"> <span class="far fa-chart-bar fa-fw" aria-hidden="true"></span> <span class="all-pv"> <span class="all-pv-count">{$all}VEWS</span> </span> </div> EOF; });
わいひら reacted
2025年1月9日 20:46
●他の方法
参考にした投稿の以下のフックを用いると、Cocoon設定「インデックスにPV数を表示する」に関係なくオンとなる。
add_filter('public_page_entry_card_pv_visible', '__return_true');
※WordPressには以下のような、値だけを返却する関数が備わっており、関数__return_trueを呼ぶことで返却値trueとなる。
function __return_true() { return true; }
さらにフックを追加する。
提示されたテンプレートを変更する方法としたいなら、テンプレートフックを用いる。
ログインユーザ以外(閲覧者)には出力を変更し、全体集計のみとする。
add_filter('cocoon_part__tmp/admin-pv', function($content) { if (!is_user_logged_in()) { $all = intval(get_all_access_count()); $content =<<< EOF <div class="admin-pv"> <span class="all-pv"> <span class="all-pv-count">{$all} VEIWS</span> </span> </div> EOF; } return $content; });
トピックスターター 2025年1月9日 22:33
複数の方法を教えていただきありがとうございます。
2つの方法を試してみました。
どちらも使いやすく使いたいのですが、
add_action('entry_card_snippet_after', function() {
$all = intval(get_all_access_count());
echo <<< EOF
<div class="admin-pv">
<span class="far fa-chart-bar fa-fw" aria-hidden="true"></span>
<span class="all-pv">
<span class="all-pv-count">{$all}VEWS</span>
</span>
</div>
EOF;
});
{$all}VEWSを{$all}回に変更したり、全体{$all}回に変更したりすると
なぜかグラフマークと数値の間に全角の空白が入ってしまいます 「📊 全体100回」
こちらはVIEWSを回に変更すると回が表示されませんでした
.admin-pv .fa-chart-bar, /* グラフアイコン */
.today-pv, /* 本日 */
.month-pv, /* 週 */
.week-pv, /* 月 */
.all-pv-label { /* 全体: */
display: none;
}
/* 全体の後ろに単位追加 */
.admin-pv .all-pv-count:after {
content: ' VIEWS';
}
≈
2025年1月9日 22:55
https://wp-cocoon.com/community/postid/73179/
掲載したコードをそのまま、テーマエディターに貼り付け、そこで全角文字に操作したので、変になったと思われます。
先述のコードはグラフアイコンを付けています。それくらいは修正して欲しいでね。
add_action('entry_card_snippet_after', function() { $all = intval(get_all_access_count()); echo <<<EOF <div class="admin-pv"> <span class="all-pv"><span class="all-pv-count">{$all}回</span></span> </div> EOF; });
.admin-pv .fa-chart-bar, .today-pv, .month-pv, .week-pv, .all-pv-label { display: none; } .admin-pv .all-pv-count:after { content:'回'; }
この投稿は6時間前ずつ大門未知子に変更されました
2025年1月9日 23:16
前述のように、既存のCSSクラスを使わず、エントリーカードに全体PV数をテキスト追加するなら、以下で十分です。
get_all_access_countで全体PV数を取得し、「回」を付けて出力する、最小のコードです。
add_action('entry_card_snippet_after', function() { $all = intval(get_all_access_count()); echo $all . '回'; });
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。