サポート » 使い方全般 » コメントの「未読」と「既読」がわかるようにしたい

  • ワードプレスのコメント機能についての質問です。

    ワードプレスで作成しています私のサイトでは、
    嬉しいことに毎日非常にたくさんのコメントをいただいています。

    ただ、それぞれのコメントに返信はしたいのですが、
    どのコメントがまだ読んでいなくて、すでに読んだのか
    ということがわからなくなってしまうことがあります。

    私自身がわかりやすくするために、承認制にして
    すべてのコメントを承認していくという形を採用することも考えたのですが、
    一つ一つを承認する手間や、書いたコメントがすぐ反映されずに私が承認するまで
    サイト上で表示されない、などを考えると非常につらいと思っています。
    いただいたコメントは素敵なものも多いので、できる限りはやくお見せしていきたいと考えています。

    そこで、携帯電話のメールやラインなどのように、
    自分がどのコメントを読んで、読んでいないか、ということが
    サイトの管理画面で調節できるとうれしいと思っております。

    今、上でしたお話は非常に理想的なお話でして、
    ログインしたときに、新しいコメントが何件来ているということが
    明記されている、というように、
    もう少し簡略的なものでも嬉しいです。

    ただ、disqusなどのプラグインが私の性に合わないと言うと失礼ですが、
    コメントについては、ワードプレスに本来ついているコメントを
    利用したいと思っています。

    長くなってしまい、申し訳ありませんが、
    目的としては、自分が読んだコメントと読んでいないコメントが明確にでき、
    読んでいないコメントが何件なのかわかると嬉しい、と考えています。

    方法は、functions.phpに記述するコード、プラグインの使用など、
    特に問いません。

    実現したいので、なにかアドバイスや方法をご存じの方、いらっしゃいましたら、
    ご回答をいただけますと大変嬉しいです。

    最後まで読んでいただきありがとうございました。

    よろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全22件中)
  • こんにちは、

    WordPressの管理画面は、未読リンクや、既読リンクに対してスタイルが指定されていなかったと思いますので、既読リンクは、区別して表示できるようにしてやるといいと思います。

    テーマの、functions.phpの先頭(<?phpの前)に以下のコードのように、
    コメント一覧ページのヘッダーにスタイルを埋め込むといいと思います。

    <?php
    add_action( 'admin_head-edit-comments.php','my_link');
    function my_link(){
    ?><style type="text/css">
    a:visited{
    	color:red;
    }
    </style>
    <?php
    }
    ?>

    nobitaさん
    ご回答ありがとうございます。
    また、具体的なコードも示していただきまして、
    大変感謝いたします。

    nobitaさんが示してくださいましたコードを
    functions.phpに貼り付け、コメントの投稿を行い、
    コメントの管理画面で確認をしたところ、
    ・サイト上部の黒いバーの一部
    ・管理画面の「コメント」と「プラグイン」
    ・コメントの管理画面の各コメントの右側にある「投稿を表示」
    という上記3点が赤く表示される、という結果になりました。

    ご回答いただいたにも関わらず、重ねて質問をさせていただく形になってしまい、
    申し訳ないのですが、
    「未読」と「既読」は上記のコードを追加したうえで、
    どのように判断するのがよいのでしょうか?

    理解力が足りなくてすいません。
    ご回答いただけますと幸いです。

    コメント一覧画面で、コメント編集などのリンクをクリックして、編集ページを開いた場合には、次に一覧画面を開くと、リンクが赤になっていると思います。

    一度クリックしたリンクは、赤になるので、赤でない項目は、まだクリックしていないということになります、、、、

    私、勘違いしていますか?

    nobitaさん
    ごめんなさい
    私が勘違いしていました。

    コメントの管理画面にある各コメントの「投稿を表示」などをクリックした上で
    再度コメント管理画面を確認すると、確かに赤くなっていました。

    お騒がせしました。

    また、若干ズレた話なのかもしれませんが、
    クリックすることによる色の変化というのを、サイト上部の黒いバーでも
    実現できるのかお尋ねしたいと思いました。

    もしですが、nobitaさんが教えてくださいましたコードのような仕組み
    (クリックすることで色が変わる)
    が、黒いバーでも出来るようになると、
    管理画面に入る前に、サイト上で未読のコメントが来ていることが分かるので、
    すごく嬉しいのですが、
    具体的な方法が見えていません。

    nobitaさんのコードは黒いバーに応用できますでしょうか?

    nobitaさんのコードは黒いバーに応用できますでしょうか?

    直接クリックしたリンクの色が変わるだけなので、無理ですね。

    お勉強がてら、ちょっと作ってみたので(ちょっとしかテストしていないので、テストしてください)試してみてください
    テーマの、functions.phpの先頭(<?php)の前に貼り付けると、黒いバーに「0 Pending Comments」とか表示されるようになると思います

    <?php
    function nobita_pending_comment_coount() {
    
    	global $wpdb;
    
    	$pending	= $wpdb->query( "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = '0'" );
    	$num		= ' <span>'.$pending.' Pending Comments</span>';
    
    	return $num;
    }
    
    function nobita_add_admin_menu( $wp_admin_bar ) {
    
        $wp_admin_bar->add_menu(
    			array(
    				'id'    => 'pending_comments',
    				'title' => nobita_pending_comment_coount(),
    				'href'  => admin_url( 'edit-comments.php?comment_status=moderated' ),
    			)
    		);
    }
    add_action( 'admin_bar_menu', 'nobita_add_admin_menu' ,99);
    ?>

    nobitaさん

    私のわがままに対応していただき、本当に感謝いたします。

    私のところで動かしてみました限りですと、
    「0 Pending Comments」の数字は、
    承認待ちのコメントの件数が表示されていましたように感じましたが、
    そのような認識で大丈夫でしょうか?

    また、私が調べている中ではわからなかったのですが、
    nobitaさんのコードを活用して、
    承認待ちかどうか関係なく、コメントがついていたときに
    「新着コメントあり」などのような表示が出て、
    そこをクリックすると、その表示が消える
    といったようなことって出来るのでしょうか?

    nobitaさんのコードをベースに行うことで
    できそうな気がしたのですが、具体的なコードが
    見えませんでして・・

    承認待ちのコメントの件数が表示されていましたように感じましたが、
    そのような認識で大丈夫でしょうか?

    うまく動いてくれれば、そうなると思います。

    承認待ちかどうか関係なく、コメントがついていたときに
    「新着コメントあり」などのような表示が出て、
    そこをクリックすると、その表示が消える
    といったようなことって出来るのでしょうか?

    コメント総数は、

    return count( get_comments( ) );

    で取れると思います。

    これを、option フィールドなどに保存しておけば、比較が出来ると思います。

    その後、どんなアクションによって「見た」と判定するかがポイントになるのではないかと思います。

    その「見た」というアクションを行ったときに、optionフィールドのデータを書き換える処理を行うことになります。クリックしただけで「見た」と判定するなら、ajaxなどで、optionフィールドの書き換えをする必要があるかもしれません。

    承認待ちのコメント件数については、理解出来ました。
    ありがとうございます。

    「新着コメントあり」の表示のほうは難しいですね・・
    nobitaさんがおっしゃってくださっていることは
    なんとなくわかるのですが、いざ実行しようとすると、
    どういうコードを書くべきか、などがわからないです・・

    最初のほうで、nobitaさんが
    a:visited{
    color:red;
    }
    というコードを教えてくださいましたが、
    このコードの仕組みを利用して、
    新しいコメントが来ていたら、黒いバーのコメントの部分の色が変化し、
    黒いバーをクリックしてコメントの管理画面に入ることで色が戻る

    というのは難しいでしょうか?

    a:visited{
    color:red;
    }

    こちらのコードは、ブラウザに、既読リンクなら、色を赤に変えてよと指定するもので、この作業は、ローカルのブラウザが変更しています。

    2個目のfunctions.phpに書き込むコードは、WEBサーバーで処理して、ブラウザに送り出すコードで、性質が異なります。

    ブラウザで処理したものを、画面の更新せずに裏側で、サーバーに送信して、サーバーに保存したりする処理を橋渡しするのが、javascriptのajax等です。ブラウザでクリックした作業を、「今作業したので、サーバーのレコードを変更してねって頼む処理が必要になります。

    サーバーのレコードを更新してねって頼むのは、いつでしょう?「今でしょう」というタイミングが、正確にわからなければ、処理できないということになります。

    2つのコードはそもそも違い、
    更新のタイミングを正確にした上で、その情報の更新をお願いする
    というところまで明確にする必要があるのですね・・

    SNSや携帯のメールなどにある「新着アリ」というようなのを表示する機能は、
    簡単に見えて基本的に難しいのでしょうか・・

    いまさらですが、新着コメントは、管理パネルのコメント欄に表示されませんでしたっけ?
    それ以外に、アドミンバーに表示が必要だとすれば、単に一覧を最後に開いてから、コメントが追加されたかどうか? ということですかね、、、

    SNSや携帯のメールなどにある「新着アリ」というようなのを表示する機能は、
    簡単に見えて基本的に難しいのでしょうか・・

    既読とか未読といった処理をはずしてしまえば、簡単になるんじゃないでしょうか?

    コメント総数は、

    return count( get_comments( ) );
    で取れると思います。

    これを、option フィールドなどに保存しておけば、比較が出来ると思います。

    で取得できるわけですから、一覧を開いたら、コメント数をupdate_option()などで、保存しておいて、次に開いたときに、現在のコメント数と、保存しておいたコメント数を比較して、コメント数が多くなっていれば、その数値を表示するという方法なら、シンプルに出来ると思いますので、

    admin_headフックなどを使った処理を追加すれば、出来ない事はないと思います。

    モデレーター gatespace

    (@gatespace)

    横からすいません。
    アドミンバーにコメントの通知(未読とか)を出すなら、JetpackとWordPress.com の連動で良くないですか?
    公式アプリとも連動するのでスマートフォンやタブレットでも通知が出ますし。

    http://jetpack.me/support/toolbar-notifications/

    これは便利!WordPressアプリ(iOS)での通知の設定方法。コメント返信とか便利!

    お二方にご回答いただき、大変嬉しく思います。

    nobitaさん
    管理パネルのコメント欄とは、どこを指しますでしょうか?
    管理画面の「コメント」という部分の横に表示されている数字ですと、
    あの数字が変化しているところを見たことがないです・・

    また、「単に一覧を最後に開いてから、コメントが追加されたかどうか?」
    という判別でいいのではないかと私は考えております。

    加えて、「新着アリ」のような表示を出す際に
    「既読とか未読といった処理をはずしてしまえば、簡単になるんじゃないでしょうか?」
    「一覧を開いたら、コメント数をupdate_option()などで、保存しておいて、次に開いたときに、現在のコメント数と、保存しておいたコメント数を比較して、コメント数が多くなっていれば、その数値を表示するという方法なら、シンプルに出来ると思います」
    というようなお話をいただき、嬉しい限りなのですが、
    具体的なコードと言うのか、ロジックというのかが私の中で見えてないかもです。
    私自身が混乱してしまっているみたいです。
    申し訳ございません。

    gatespaceさん
    私もjetpackには目をつけていたため、調べてはみたのですが、
    基本的にはスマホまたはタブレットの通知ということで、使用を検討してみます。
    ただ、アドミンバーに表示する方法は私の理解力不足ですが、どうしていいのかわかりませんでした。

    管理パネルのコメント欄とは、どこを指しますでしょうか?
    管理画面の「コメント」という部分の横に表示されている数字ですと、
    あの数字が変化しているところを見たことがないです・・

    管理画面のサイドバーの投稿とか、固定ページとかへのリンクと共にコメントというリンクがあります。その右側に数字が表示されます。

    たぶん、ディスカッション設定の「コメントの手動承認を必須にする 」のチェックが入っていないんじゃないかと思います。

    そこにチェックを入れると、承認待ちコメントが入ったときに、件数が表示されます。

    コメントの手動承認を必須にするを、チェックして、新しいコメントが入ったら、表示が出るように設定してみてはどうでしょうか?

    いちいち、個別に承認するのが大変ならば、コメント一覧ページの表示オプション(ページ右上)で一ページに表示する数を、100とか200ぐらいまでなら設定できたと思うので(あまり多いと、エラーになります)一括で承認するようにすれば、それほど手間もかからないと思います。

    nobitaさん

    やはり、件数を明確にするという意味では、
    承認のフローは必然的に用いらなければいけないんですね・・

    「新着アリ」のような表示を出す際に
    「既読とか未読といった処理をはずしてしまえば、簡単になるんじゃないでしょうか?」
    「一覧を開いたら、コメント数をupdate_option()などで、保存しておいて、次に開いたときに、現在のコメント数と、保存しておいたコメント数を比較して、コメント数が多くなっていれば、その数値を表示するという方法なら、シンプルに出来ると思います」

    という部分が具体的に活用できるようになると、理想の形になるかと思われるのですが、
    このあたりをもう少し詳しく教えていただいてもよろしいでしょうか?

15件の返信を表示中 - 1 - 15件目 (全22件中)
  • トピック「コメントの「未読」と「既読」がわかるようにしたい」には新たに返信することはできません。