自分のコメントをAdmin発言にする

あるところにかなり昔からWordPressでブログをしている男がおったげな。その頃はそりゃもうカスタマイズするにも情報がなかったし、そんなにたいしたこともできないので毎日更新するのがやっとだったそうな。コメントがつくのが楽しいので、すぐわかるようにと携帯のメールアドレスでユーザー登録しておったそうな。

そのうち、コメンターのアバターが表示できるようになって∼そうGravatarとかゆーたかのぅ∼適当なアドレスで登録して楽しんどったのじゃが、自分のサイトにコメントしてアバターを表示するにはそのアドレスを使わにゃならんからログインしてコメントするくせがつかなんだ。ここで、Gravatarの登録アドレスを変更しとけば、のちのちこんな面倒なこともすんだじゃろうに・・・。

時は流れてWP2.7時代。コメントは返信できるようになり、それはWP-Threadとも呼ばれた。この機能を使うとコメントのクラスがぎょーさん(たくさんの意)つくそうじゃ。

<li class="comment odd alt thread-odd thread-alt depth-1" id="comment-437656">

こんな風にのぅ。ここからなんじゃが、ログインしてコメントすると・・・

<li class="comment byuser comment-author-Masayan bypostauthor even depth-2" id="comment-437661">

comment-author-Masayan とか、bypostauthor とかついての、ほかのそれとは容易に区別できるんじゃと。その男はどうしてもそれを使いたくて考えた。コメントテーブルでその区別をつけているはずじゃと。確かにログインしてコメントすると user_id が0ではなく、そのユーザーのIDになる。過去のコメントのuser_id さえ変えられれば後はcssでデザインを変えることができるではないかと。じゃが、あの時何もしなかったおかげで1500近くのコメントを変更せにゃならん。そして、男はあまり賢くなかった。(笑) いろいろググって調べたそうな。

UPDATE *_comments SET user_id = REPLACE (user_id,'0','ユーザーID') WHERE comment_author = 'Masayan' AND user_id ='0';

テストサイトで試して確信を得た男は、コメントテーブルをバックアップした後おもむろに実行したげな。見事に user_id は書き換えられ、男はカスタマイズに成功したんじゃと。めでたしめでたし。 :mrgreen:

スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメント

  1. ゆりこ より:

    今回の場合、REPLACE() は不要で、単純に SET user_id =ユーザーID でいいはずです (数値なのでクォートもなし)。あと、WHERE 節では、メールアドレスも条件に入れた方がより厳密だったと思います (さすがに、Masayan を名乗る他人はいなかったのでしょうが、同名の別人もありうるので)。

    • Masayan より:

      おおー、勉強になります。 :)
      初めて自分で考えたSQL文だったので、この程度です。
      どっちかというとcomment_authorよりcomment_author_emailを条件に入れた方がよさそうです。(確認するとMasayan以外でもコメントしてました・・・)

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

:x :wink: :twisted: :shock: :sad: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :cheesy: :arrow-u: :arrow-l: :arrow-d: :D :?: :) :!: 8)