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

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

コメント番号、1ページ目「1.2.3」...
 
共有:
通知
すべてクリア

コメント番号、1ページ目「1.2.3」、2ページ目「4.5.6」と表記したい。

16 投稿
2 ユーザー
13 Reactions
2,167 表示
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

いつもお世話になります。

★対象URL:
https://tohyo2020.org/mako_sama/

★相談内容:
トピックのタイトル通りとなります。
リプライ含めて2,000のコメントがあります。ページネーションで26ページにまたがり、コメントが消されたか消されていないかという疑念がユーザーさんから出始めました。この疑念を払拭したいと考えています。

現状、1ページ50番ずつ割り振っている状態です。
実際に対象URLを見て頂いたほうが早いかと思いますが、

現在の表記は、1ページ目「1.2.3・・・49.50」、2ページ目「1.2.3・・・49.50」
叶えたいこと、1ページ目「1.2.3・・・49.50」、2ページ目「51.52.53・・・99.100」
3ページ以降も同様に「101.102.103・・・149.150」といった形が希望です。

コメント番号表示のため、現在「style.css」へ追記しているコード

.commets-list {
padding-left: 25px;
list-style: decimal;
}

 

 

★試したこと:
コメントに連番を振り、分割でも機能させたい」を参考にしました。

①親テーマの「comments.php」を子テーマの「functions.php」と同一フォルダ「/var/www/html/wp-content/themes/cocoon-child-master」にコピー。
②子テーマにコピーした「comments.php」を編集。

24行目
<ol class="commets-list">
↓編集
<ol class="commets-list" style="counter-reset: number 2;">

③「style.css」へ追記

li{
counter-increment: number;
&:before{
content: counter(number)”.”;
}
}

 

解決策あるようでしたら宜しくお願い致します。


   
引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 

若干アプローチが異なりますが、comments.phpを子テーマにコピーするのと、参照先の「<ol start="21">」のようにするのは同じで…

comments.php内で「$page」という変数にはコメントの何ページ目なのかが数字で入っています。
なので「何ページ目なのか」と「1ページに何コメント表示するか」から「ol start=」の後の数字を計算できると思います。

実際には試していませんがヒント程度として。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

ご提案ありがとうございます。

ところが、私の「comments.php」には「$page」という変数が存在しません。現状ですと「何がわからないのかわからない」という状態です。

代替案がありますでしょうか。


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 

comments.phpの22行目辺りが

    if(have_comments()): // コメントがあったら
    ?>
        <ol class="comments-list">

となっていますが、この部分を

    if(have_comments()): // コメントがあったら
    $aaa_page = $page ? $page-1 : floor(get_comments_number()/get_option('comments_per_page'));
    $aaa_start = get_option('comments_per_page')*($aaa_page)+1;
    ?>
        <ol class="commets-list" start="<?=$aaa_start?>">

にすると要望を満たす気がします。

ただしこのコードはディスカッション設定>他のコメント設定>1ページ辺り○件の~の設定部分が「最後」のページを、「古い」コメントを、という設定になっていることを前提にしています(tohyo2020のサイトではそのようになっていると思います)。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

何と申し上げたらよいか分かりませんが...

完璧です。
Perfect.
Awesome.
Amazing.
www

実際にご確認頂けましたら幸いです。
ありがとうございました。


   
わいひら reacted
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

編集に伴い、別の問題が生じましたが、改めて記載させて頂きます。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

お世話になります。

上記「comments.php」の編集で。タイトルの通りほとんどが解決しました。

もしかしたら、別のトピックとして立ち上げなければならないかもしれませんが、結論から先に申し上げます。

コメント欄で「1-10.Google AdSense 広告.11-20.広告.21-30.広告・・・広告.41-50」というように「コメント10個」に対して「1つの広告」を挟み込みたいと思っているのですが、「comments.php」「functions.php「content.php」などのファイルコード編集で実現できますでしょうか。

理由は、2つあります。

①「1ページ目のコメント番号の終了が54になってしまう」けれど「2ページ目のコメント番号の開始は切りよく番号51開始になる」、3ページ目以降も同様です。

②「1ページ目のコメント番号の終了が切りよく50で終了になる」けれど「2ページ目のコメント番号の開始は番号47になる」、3ページ以降、開始番号が「50-47=3」という風に3つずつずれ、「2ページ目47開始、3ページ目94開始」。

★どちらにも共通する現象は、プラグイン「Ad Inserter」というものを利用している影響により、2通りの現象が生じるからです。

コメントの間に広告を挟み込むために利用しています。
「1-50までの間に4つの広告を挟みこむ設定をしています)

■ 理由①の詳細:(現状です)
https://tohyo2020.org/mako_sama/

 - ディスカッション設定>他のコメント設定>1ページあたり50件とした場合です。
「10.20.30.40」のコメントが広告になります。が、コメント番号54までカウントされます。

■ 理由②の詳細:「試したこと」
ディスカッション設定>他のコメント設定>1ページあたり46件とした場合です。
1ページ目「9...10広告.19...20広告.29...30広告.40...広告...50
2ページ目「47開始、3ページ目のコメント番号の開始は番号94

プラグインを利用していると「あっちをたてれば、こっちがたたず」という状況です。
この状況を解決するシンプルなものは「コメント10番ごとに一つのGoogle_Adsense を挿入」することです。

少し特殊な例ですが、解決策があるでしょうか。
宜しくお願い致します。


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 

<ol>タグによって全部の<li>タグに順番に番号が割り振られているのに対し、広告も<li>タグに囲まれてるので番号が振られてしまうようですね。

解決方法として思い浮かぶのは

  • Ad Inserterで出力される広告タグに<li>が囲われないようにする(そういう設定があったりする…?)
  • Ad Inserter以外の方法で<li>で囲われないように広告を挿入する(JavaScriptとかで<li>の数を数えて広告タグ入れる…?)

とかですが、具体的な方法は分かりません。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

はるさん

ご提案ありがとうございます。

まずは、

  • Ad Inserterで出力される広告タグに<li>が囲われないようにする(そういう設定があったりする…?)

試してみようと思います。確認は、夜遅いので後日になってしまいますけれども申し訳ありません。確認できましたら改めて記載させて頂きます。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  
投稿者:: @haruinoue

解決方法として思い浮かぶのは

  • Ad Inserterで出力される広告タグに<li>が囲われないようにする(そういう設定があったりする…?)
  • Ad Inserter以外の方法で<li>で囲われないように広告を挿入する(JavaScriptとかで<li>の数を数えて広告タグ入れる…?)

こちらの広告のことも確認しなければなりませんが、広告の件は一度脇に置きます。

トピックタイトルの本題の方を確認する必要が出てきました。

投稿者:: @haruinoue

comments.phpの22行目辺りが

    if(have_comments()): // コメントがあったら
    ?>
        <ol class="comments-list">

となっていますが、この部分を

    if(have_comments()): // コメントがあったら
    $aaa_page = $page ? $page-1 : floor(get_comments_number()/get_option('comments_per_page'));
    $aaa_start = get_option('comments_per_page')*($aaa_page)+1;
    ?>
        <ol class="commets-list" start="<?=$aaa_start?>">

にすると要望を満たす気がします。

「comments.php」が少し予想外の動作になっていますので、そちらからご報告します。

①対象URL: https://tohyo2020.org/mako_sama/
こちらで確認すると問題はないように見えます。それはコメントページの25ページ目が最初に表示されているからで、コメントページの1ページ目へ移動するとなると
リンク先: https://tohyo2020.org/governor/comment-page-1/#comments
これは正常にコメント番号開始「1」です。

②別のURL: https://tohyo2020.org/governor/
コメント開始番号開始が「101」になっています。
URLを変更してアクセス、 https://tohyo2020.org/governor/comment-page-1/#comments
コメント開始番号開始が「1」となり正常に変わります。

③さらに別のURL: https://tohyo2020.org/trump_vs_biden/
コメント開始番号開始「1」となり最初から正常。

正常動作と想定外の動作が混在しており、狐につままれています。お知恵を拝借したいところです。宜しくお願い致します。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

お世話になります。
少しドタバタしており放置してしまいました。

投稿者:: @haruinoue

解決方法として思い浮かぶのは

  • Ad Inserterで出力される広告タグに<li>が囲われないようにする(そういう設定があったりする…?)
  • Ad Inserter以外の方法で<li>で囲われないように広告を挿入する(JavaScriptとかで<li>の数を数えて広告タグ入れる…?)

プラグインAd Inserterでは「上記のようにコード修正ができません」ので、要望のトピックに改めて記載させてもらおうと思っております。

本題ですが、

タイトルの通り「コメント番号、1ページ目「1.2.3」、2ページ目「4.5.6」と表記したい。」が解決されておりません。

投稿者:: @haruinoue

comments.phpの22行目辺りが

    if(have_comments()): // コメントがあったら
    ?>
        <ol class="comments-list">

となっていますが、この部分を

    if(have_comments()): // コメントがあったら
    $aaa_page = $page ? $page-1 : floor(get_comments_number()/get_option('comments_per_page'));
    $aaa_start = get_option('comments_per_page')*($aaa_page)+1;
    ?>
        <ol class="commets-list" start="<?=$aaa_start?>">

にすると要望を満たす気がします。

というコードを、はるさんにご提示して頂きました。コードの「修正・追記」

現状、何が問題になっているかと申しますと、

https://tohyo2020.org/mako_sama/
 - そのままアクセスすると、26ページ目コメント番号「2151」から始まります。
 - 次にページネーションで、25ページ目に移動しますと「1201」から始まります。
 - もう一度ページネーションで、26ページ目に戻りますと「1251」から始まります。

正しいコメント番号は、25ページ目「1201」、26ページ目「1251」です。
リプライ含めたコメント数は「2178」ですので、こちらともあまり関係ない数字になっています。

https://tohyo2020.org/governor/
 - そのままアクセスすると、2ページ目コメント番号「151」から始まります。
 - 次にページネーションで、1ページ目に移動しますと「1」から始まります。
 - もう一度ページネーションで、2ページ目に戻りますと「51」から始まります。

いずれにしても、最初にアクセスしたURLですとコメント番号が飛びます。

上記のご提示して頂いたコードですと、
「コメント番号、1ページ目「1.2.3」、2ページ目「4.5.6」と表記したい。」は一度ページネーションを一度クリックして初めて動作するようになっているようです。

現在「プラグインAd Inserter」を有効化しておりますが、無効にしても同一の動作です。

コードによるものなのか、テーマ側によるものなのか、全く判断がつかないでおります。
「高速化」のどこかの部分をオフにしなければ、検証ができないということでしたら、申し訳ありませんが、明日以降に外させて頂き、検証をして頂けないかと思っております。

本日、東京都議会選挙で、これに関する44ページがリアルタイムで連動する仕組みを作成していますので、同時並行することのリスクがあります。

後日再度、検証開始できます、となりましたらその旨投稿させて頂きます。宜しくお願い致します。

 

 

 

 


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 
投稿者:: @tohyo2020

 - そのままアクセスすると、26ページ目コメント番号「2151」から始まります。
 - 次にページネーションで、25ページ目に移動しますと「1201」から始まります。
 - もう一度ページネーションで、26ページ目に戻りますと「1251」から始まります。

正しいコメント番号は、25ページ目「1201」、26ページ目「1251」です。
リプライ含めたコメント数は「2178」ですので、こちらともあまり関係ない数字になっています。

floor(get_comments_number()/get_option('comments_per_page'));

get_comments_number()

部分で親コメントだけでなく全コメントの数を基準にしていたためです。

以下のコードに変更すると改善されそうです。

    if(have_comments()): // コメントがあったら
    $parent_comments_count = get_comments(array(
      'status' => 'approve',
      'post_id'=> get_the_ID(),
      'orderby' => 'comment_parent'
    ));
    $parent_comments_count = wp_list_filter($parent_comments_count, array('comment_parent' => 0));
    $aaa_page = $page ? $page : floor(count($parent_comments_count)/get_option('comments_per_page'));
    $aaa_start = get_option('comments_per_page')*($aaa_page-1)+1;
    ?>
        <ol class="commets-list" start="<?=$aaa_start?>">

参考にしたページ:WordPressで親コメントののみを取得する方法を教えていただきたいです


仕事をしすぎてしまいました…
有償カスタマイズに誘導すべきだったかも知れません。


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

はるさん

投稿者:: @haruinoue

仕事をしすぎてしまいました…
有償カスタマイズに誘導すべきだったかも知れません。

もう一声

1つ目のこちら、

投稿者:: @tohyo2020

https://tohyo2020.org/mako_sama/
 - そのままアクセスすると、26ページ目コメント番号「2151」から始まります。
 - 次にページネーションで、25ページ目に移動しますと「1201」から始まります。
 - もう一度ページネーションで、26ページ目に戻りますと「1251」から始まります。

正しいコメント番号は、25ページ目「1201」、26ページ目「1251」です。

解決しました。

2つ目のこちら、解決していない方ですが、

投稿者:: @tohyo2020

https://tohyo2020.org/governor/
 - そのままアクセスすると、2ページ目コメント番号「151」から始まります。
 - 次にページネーションで、1ページ目に移動しますと「1」から始まります。
 - もう一度ページネーションで、2ページ目に戻りますと「51」から始まります。

修正後の動作

 - そのままアクセスすると、2ページ目コメント番号「1」から始まります。
 - 次にページネーションで、1ページ目に移動しますと「1」から始まります。
 - もう一度ページネーションで、2ページ目に戻りますと「51」から始まります。

あともう少し…
どこかでサイトを運営していましたら広告クリックしに行きます。


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 

シンプルに計算を間違えていました。
floorで小数点以下を切り捨てていたので-1が要りませんでした。

    if(have_comments()): // コメントがあったら
    $parent_comments_count = get_comments(array(
      'status' => 'approve',
      'post_id'=> get_the_ID(),
      'orderby' => 'comment_parent'
    ));
    $parent_comments_count = wp_list_filter($parent_comments_count, array('comment_parent' => 0));
    $aaa_page = $page ? $page-1 : floor(count($parent_comments_count)/get_option('comments_per_page'));
    $aaa_start = get_option('comments_per_page')*($aaa_page)+1;
    ?>
        <ol class="commets-list" start="<?=$aaa_start?>">

申し訳ありませんがこれでダメでも返信はここまでとさせていただきます。

あとはolタグでない方法として以下のような情報もありました。

WordPressのコメントごとに番号を表示したい

分割したコメント欄の番号を、続き番号にしたい


   
返信引用
投票2020
(@tohyo2020)
Estimable Member Moderator
結合: 4年前
投稿: 136
トピックスターター  

はるさん

ご提示頂いたコード完璧です。すべてのページできっちりとコメント親番号が振られています。どうもありがとうございます。

参考にされたリンクもほんの少しだけ調べてはいたのですが、いかんせんどのようにアレンジしてもよいかわからず半ば諦めていました。

ところが、コメント数が非常に多くなり、疑心暗鬼になられる人も出始めて放置できないなと思い、ご相談させて頂いたところ考えうる限り理想的な形になりました。

私は投票サイトを運営していますが、少しばかりGCPやCocoonの記事も書いたりしています。そのサイトの中でこれからCocoonに関わることも記事にしていくことになると思います。

記事の中ではるさんのご提示して頂いたコード(こちらのリンク)に紐づけて、はるさんがココナラでされているページも一緒にご紹介することをしてもよろしいでしょうか。今すぐというタイミングではないにしろ訪れる日が来ます。予めご承諾を頂ければ幸いです。

参考までにどのようなものか、です。
GCP:WordPress
GCP:WordPress ロードバランサーあり


   
返信引用
はる
(@haruinoue)
Noble Member Moderator
結合: 4年前
投稿: 1090
 
投稿者:: @tohyo2020

記事の中ではるさんのご提示して頂いたコード(こちらのリンク)に紐づけて、はるさんがココナラでされているページも一緒にご紹介することをしてもよろしいでしょうか。

はい、問題ありません。


   
投票2020 reacted
返信引用
共有:

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

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

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

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

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

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

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

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