Fri 24 Feb 2006
コメントに投稿者用、再編集機能をつける
Category: WordPress
You can leave a response, or trackback from your own site.
“Edit Comments”は、コメントに再編集機能をつけるプラグインです。自分が投稿したコメントのみ編集用リンクが表示され、再編集できるようになります。動作デモはこの投稿のコメント欄をお使いください。(適当にコメントをしていただいてOK)
コメントを再編集できるようにするには条件があります。コメントに記録されたIPアドレスと現在のIPアドレスが同じであること、タイムゾーンが同じであること(?)です。デフォルトではコメント投稿後30分を過ぎると、そのコメントは管理人いがい編集できなくなります。このタイムリミットはプラグインファイルを編集すれば簡単に変更できるので、好みに合わせましょう。
Edit Commentsのインストール方法
Edit Commentsのインストールは少し複雑です。ですが、ポイントを押さえれば問題なく動くようになります。
まずjal-edit-comments.phpをプラグインフォルダへアップロードし、管理画面 -> プラグインからEdit-Commentsを有効化してください。
comments.phpの編集方法
ここから先は少し複雑になります。テーマのフォルダにあるcomments.phpを編集します。問題が起きてしまった場合に備えて、元のcomments.phpをcomments-backup.phpという名前に変更し保存しましょう。ファイルは./wp-content/themes/テーマ名/にあります。
もしWordPressデフォルトのKubrickというテーマを使っている場合は、プラグイン付属のcomments.phpが使えます。そのままテーマフォルダにアップロードしましょう。Kubrickがベースになっているテーマも、付属のものが使えるかもしれません。付属のもので問題なく動けば、以下の行程は必要ありません。
Step.1 コメントの再編集用リンクをつける
再編集用のリンクのコードは<?php jal_edit_comment_link(); ?>です。これをループ内におくことで各コメントに編集用リンクがつきます。
<?php foreach ($comments as $comment) : ?> // この上下のコード間に、編集用リンクを設置 <?php endforeach; /* end for each comment */ ?>
テーマに元々ついている<?php edit_comment_link(); ?>と入れ替えればOKでしょう。
Step.2 if文の削除と変更
<?php if ( $user_ID ) : ?>というコードを見つけてください。このコードを消して以下のコードを挿入します。
<?php if ( isset($_GET['jal_edit_comments']) ) : $jal_comment = jal_edit_comment_init(); if (!$jal_comment) : return; endif; ?> <?php elseif ( $user_ID ) : ?>
Step.3 テキストエリアにコードを挿入
続いてコメントフォーム用の<textarea>を編集します。元のコードを削除し、以下のコードを挿入してください。
Step.4 再編集中メッセージを表示させる
<h3 id="respond">Leave a Reply</h3>を削除し、以下のコードと入れ替えてください。
Step.5 ファイルのアップロードおよびコメントテスト
以上で編集作業は終わりです。テーマフォルダに編集したcomments.phpをアップロードしてください。ログアウトした状態でコメントを投稿してみて、再編集リンクが表示されればOKです。お疲れ様でした。
February 24th, 2006 at 5:13 pm
このプラグインの問題は、同じIPなら違うパソコンでも再編集できてしまうところです。セッションかクッキーで管理すれば良いのかもしれませんが、時間制限がついているし良いかなと思っています :s
February 25th, 2006 at 10:38 pm
kairaさんこんばんわ〜
なになに、自分のコメントを自分で修正したり編集したりする事ができるんですか?凄いですね
★今編集してます :s すばらしい〜〜 コメントして誤字脱字に気がつく事ってありますからね、便利ですね
February 26th, 2006 at 2:53 pm
こんにちは。わたしもテストさせてください。
修正してみました。
風邪が治ったらトライしてみたいです。
February 26th, 2006 at 5:51 pm
February 27th, 2006 at 8:21 pm
yutakaさん。
無事設置できましたか。よかったよかった
トラックバックも2.0.1へのVer.UPで解決したようですねー。
M'sさん。
風邪を早く治して導入してみてくださいな
説明のわかりにくいところなどがありましたら、教えてくださいね~。
March 1st, 2006 at 12:15 am
こんばんは。導入してみました。
私はTHEMEはclassicを使っているのですが、
Step.4 の
Leave a Replyがなく、
#postcomment title= のくくりにあって
ちょっと迷ったのですが、そこを入れ替えたら動いて
くれました。これで投稿者も安心ですね。
March 1st, 2006 at 12:51 pm
Step.4は編集中のメッセージを出すだけなので、無くてもかまいません。
M'sさんのところなら、
<h2 id="postcomment"><?php echo (isset($_GET['jal_edit_comments'])) ? "コメントを編集中" : "コメントをどうぞ"; ?></h2>
という風にすればOKです
December 8th, 2006 at 10:48 pm
試させてください~。
いいですね~
January 23rd, 2007 at 11:22 am
テストさせてください
すぎ
January 25th, 2007 at 4:40 pm
このプラグインすごーい。感動した ;(
January 31st, 2007 at 12:09 pm
テストさせてください!
出来ました!
ありがとうございました。
March 9th, 2007 at 12:35 am
便利なプラグインですね テストさせて下さい。

投稿後のコメントです。
間違っても再度コメント修正できるんですね
これはほんと便利です
是非利用させて頂きたいと思います
March 9th, 2007 at 1:04 am
再度テストさせて下さい
今しがた当サイトで設置してみてテスト投稿したところ
タイムリミットになるとサイト全体が崩れてしまいました。
タイムリミットの場合の表示はどのようになるのでしょう?
その辺が不具合が起きてるよう・・・・ ;(
March 9th, 2007 at 1:41 am
今しがた利用させて頂き当サイトに設置したところ最初投稿は正常に
投稿されました。再編集し送信するとTOPページまで移動されるので
下スクロールして再度コメントして再送信すると全体が崩れて下記のようなエラーが出てしまいます。
誠に恐縮ですがアドバイス頂けないでしょうか。
宜しくお願いします。
エラー:http://vita.qee.jp/wp/WS075.JPG
March 9th, 2007 at 5:19 pm
テストさせて下さい。導入がうまくいきません。
再編集の際にエラーが下記のように出て全体が崩れます。
WordPress database error: [You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1]
SELECT comment_content, comment_author_IP, comment_date_gmt FROM wp_2comments WHERE comment_ID =
You aren't allowed to edit this comment, either because you didn't write it or you passed the 30 minute time limit.
恐れ入りますが宜しくお願いします。
March 9th, 2007 at 10:17 pm
「コメントの再編集機能」http://bd.dotted.jp/archives/67/#comment-36204
そこでこれを是非導入したく考えてるのですがどうもエラーが起きます。
最初のコメントは投稿できるのですが投降後の再編集の際、ページTOPへ移動して
再コメントするとエラーが出て全体が崩れます。
エラーの状態:http://vita.qee.jp/wp/WS075.JPG
誠に恐縮ですがアドバイス頂けないでしょうか。
恐れ入りますが宜しくお願いします。
March 10th, 2007 at 12:39 am
コメントしてもすぐコメントが消えてるので再度コメントします。
「コメントの再編集機能」http://bd.dotted.jp/archives/67/#comment-36204
そこでこれを是非導入したく考えてるのですがどうもエラーが起きます。
最初のコメントは投稿できるのですが再投稿後、ページTOPへ移動して
再コメントするとエラーが出て全体が崩れます。
エラーの状態:http://vita.qee.jp/wp/WS075.JPG
誠に恐縮ですがアドバイス頂けないでしょうか。
恐れ入りますが宜しくお願いします。
March 10th, 2007 at 12:40 am
コメントしたら今までのコメントが表示されますね?
サイトに入った時は自分のコメントがない状態です。
どうしてでしょうか?
March 10th, 2007 at 11:14 am
テストさせてくださいませ。
March 10th, 2007 at 11:15 am
てすとさせていただきました♪
編集してみました。
April 1st, 2007 at 9:59 pm
テストさせて下さい
April 6th, 2007 at 5:34 am
テストですよ。
April 12th, 2007 at 7:32 pm
テストさせてください。
>なるほど。
April 26th, 2007 at 9:08 am
てすとですー
/編集
May 8th, 2007 at 4:15 pm
テストさせてください。編集!
ここも、
WordPress database error: [You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1]
SELECT comment_content, comment_author_IP, comment_date_gmt FROM bd_comments WHERE comment_ID =
You aren't allowed to edit this comment, either because you didn't write it or you passed the 30 minute time limit.
とエラーメッセージが出ますね。
私のブログで設置したときもそうでした。
WordPressの最新バージョンに対応していないのか、
それともSQLのバージョンがMySQL 4.0.2xなのが問題なのか・・
こうしたら出なくなるなどないでしょうか?
初めての書き込みで失礼いたしましたm(__)m
May 8th, 2007 at 9:32 pm
ふかぞうさん。エラーの報告ありがとうございます。
時間を見つけて調べてみますね。
May 8th, 2007 at 10:25 pm
jal-edit-comments.phpを編集することでエラーを回避できるようです。
84行目の
$location = add_query_arg('jal_edit_comments', '', $_SERVER['HTTP_REFERER']);
を
$location = add_query_arg('jal_edit_comments', $_SERVER['HTTP_REFERER']);
に変更してみてください。
May 8th, 2007 at 11:59 pm
わ、早い対応ありがとうございます。
私の方もさっそく修正してみましたが、
私の「jal-edit-comments.php」(バージョン0.3Beta)
$location = add_query_arg('jal_edit_comments', '', $_SERVER['HTTP_REFERER']);
は91行目にありました。
修正してみましたが、投稿ボタンをクリックすると
透明なページが表示されて、
http://○○.com/wp-comments-post.php?jal_edit_comments=http://○○.com /?p=10&jal_edit_comments=22#comment-22
↑
のようなURLになります。
***********************************************
// remove query arg from referer
$location = add_query_arg('jal_edit_comments', $_SERVER['HTTP_REFERER']);
// take out the #commentform bit
$location = str_replace('#commentform', '', $location);
// direct them to the comment they edited
$location .= "#comment-".$comment_post_ID;
// off we go!
header("location: {$location}");
die();
} else
die("You aren't allowed to edit this comment, either because you didn't write it or you passed the {$jal_minutes} minute time limit.");
}
***********************************************
この部分、他にも変更しないといけないところがあるんでしょうか?
ちょっといじったんですが、なかなか近づけないんですよね(^-^;
たびたびずうずうしいんですが、お助けいただけると助かります。よろしくお願いします。
May 9th, 2007 at 6:36 pm
たびたびすみません。こんばんは。
昨日は長いコメントを書いてしまい失礼しました。
あれからいろいろやってみまして、
$location = add_query_arg('jal_edit_comments', FALSE, $_SERVER['HTTP_REFERER']);
と、「FALSE」を入れたらエラーが出なくなりました。
PHPが基本的にわかってないので、なんでこれでいいのかが?なんですが(^。^;)、一応結果オーライということでお知らせさせていただきます。
お騒がせしました(^^)
May 9th, 2007 at 10:23 pm
あ、FALSEの部分が抜けてましたね。
昨日の時点で一応は動いた(編集は出来た)ので気がつきませんでした。失礼しましたー。
May 11th, 2007 at 5:39 pm
読者に優しいプラグインですね。実験させていただきます。
お、追加書き込みできますぞ。
だけど、追記をして、EditCommentボタンで投稿すると白いページに飛ばされました。
May 11th, 2007 at 11:58 pm
上記コメントの部分を修正していませんでした。
もう大丈夫なはずです。
June 5th, 2007 at 6:44 am
テストさせて貰いますね
お~コレはいいかも
June 25th, 2007 at 7:11 pm
wordpress初心者です。
テストさせていただきました。
どうもありがとうございました。
July 2nd, 2007 at 12:30 am
テストさせてください。
おー、なるほどー
July 2nd, 2007 at 8:42 pm
テストさせていただきます
これは便利ですね~
July 3rd, 2007 at 10:11 pm
なるほど
July 6th, 2007 at 12:46 pm
わたしもテストさせてください。
August 4th, 2007 at 4:46 am
てすとなのだ
August 15th, 2007 at 2:14 pm
テストさせてくださいませ。編集
August 24th, 2007 at 5:24 pm
編集テストお願いします。
自分のはうまくいかずSQLエラーが出ます。
August 24th, 2007 at 5:44 pm
上手くいきました。
ふかぞうさんの過去ログで解決しました。
有難う御座いました。
August 31st, 2007 at 6:19 pm
テストさせてください。
出来ました!ありがとうございます。参考になりました。
October 29th, 2007 at 3:54 pm
testわわわ
Thanks
December 3rd, 2007 at 4:43 pm
この機能つかえそう…
早速テストさせてもらいます。
うん。すごくいいぞ。
Thank you!
January 12th, 2008 at 6:52 pm
テストさせていただきます
編集できました。
ありがとうございました。
February 22nd, 2008 at 6:51 pm
テストです
March 5th, 2008 at 6:49 pm
test edit
May 25th, 2008 at 5:23 pm
テストさせてください