特典機能について

コメント番号、1ページ目「1.2.3」、2ページ目「4.5.6」と表記したい。 | Cocoonテーマに関する質問 | 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. ブラウザ環境チェックツール

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

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

wpForoの解決済みリンク

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

wpForoのいいねリンク

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

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

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

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

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

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

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


投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

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

★対象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)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 

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

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

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


投票2020わいひら 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

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

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

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


返信引用
はる
(@haruinoue)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 

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わいひら 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

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

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

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


わいひら 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

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


返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

お世話になります。

上記「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)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 

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

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

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

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


投票2020わいひら 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

はるさん

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

まずは、

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

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


返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  
投稿者:: @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)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

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

投稿者:: @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)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 
投稿者:: @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で親コメントののみを取得する方法を教えていただきたいです


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


わいひら, 投票2020mk2 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

はるさん

投稿者:: @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)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 

シンプルに計算を間違えていました。
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 件のいいね!
返信引用
投票2020
(@tohyo2020)
投票サイトサイト Moderator
結合: 11か月前
投稿: 121
Topic starter  

はるさん

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

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

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

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

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

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


返信引用
はる
(@haruinoue)
メンバーサイト Moderator
結合: 1年前
投稿: 766
 
投稿者:: @tohyo2020

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

はい、問題ありません。


投票2020 件のいいね!
返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

許可された最大ファイルサイズ 5MB

 
プレビュー 0リビジョン 保存しました
共有:
スポンサーリンク
SWELLと業務提携しています
WordPressテーマSWELL
わいひらをフォローする
おすすめサーバー(コスパ・バックアップ重視型)

性能も兼ね備えながら安くブログ運営を開始できる点においてのNo.1。
それでいてブログ成長後は、十分すぎるほどのスペックアップ余力も担保されている。

◎安く始められる
◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎東京・大阪でリージョン選択が可能
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:3年

1年以上の契約をする場合は、クーポンコード入力でさらに50%割引キャンペーン中!
※BOX2 ~ BOX8プラン契約の場合

クーポンコード:PK4JK4RJ

クーポンの使用方法はこちら

とにかく速い。サイトに表示スピードを求めるならココ。
管理画面がシンプルで使いやすい。

◎nginxを用いた高速サーバー(完全SSD)
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
○http/2(高速化プロトコル)に対応
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎サーバ引っ越しツールあり(無料)
○サーバ引っ越し依頼が可能(有料)
◎ドメインとサーバー代のチャージ払いが可能

サービス運営期間:2年11ヶ月

安定感抜群のサーバーです。あまり急激なアクセス変動がないアフィリエイトサイトに向いています。

◎nginxを用いた高速サーバー(完全SSD)
◎老舗サーバーなので安定感抜群
◎ディスク容量が多い
◎転送量が多い
◎同サービス内でドメイン管理が可能
○http/2(高速化プロトコル)に対応
○毎日無料バックアップ(14日分)
○DBは7日以内なら無料自動復旧可能
×ファイルは有料かつ手動での復旧
×プラン変更でCPUのスペックアップができない
×プラン変更しても即時反映されない
×アダルト・出会い系サイト不可

サービス運営期間:18年

常に新しいことに挑戦しているフロンティア精神あふるるレンタルサーバーです。
LiteSpeedやHTTP/2を日本で初めて導入したサーバー。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎転送量が多い
◎ディスク容量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
○ファイルは14日以内なら無料復旧可能(※手動)
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:5年

格安な値段で始められる高機能サーバーです。
性能も備えつつ最安ならここ。
ただし少し機能は弱い。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎激安プランが用意してある
◎値段あたりのスペックが高い(コスパ良し)
◎サーバ引っ越し依頼が可能(無料)
◎アダルト・出会い系サイト可
○http/2(高速化プロトコル)に対応
△プランのアップは可能だがダウンは不可
△毎日自動バックアップ(1日分)
△前日のバックアップからのみ復元できる(無料)

サービス運営期間:5年

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