ページ統一委員会

今頃になって目一杯失敗したなと後悔している。このブログのプロジェクト「PJP」のページだ。当初は御気楽に分かりやすい方がよかろうとプラグイン別ではなく、WordPressのバージョン別にしたため、同じプラグインのページが複数できてしまうこととなった。しかも、このままWPerであり続ければますますページは増大してゆく。こりは困った。

何が困るって、そのページについたコメントの処理である。ページを統一し、スラッグを換えるのは簡単だが、コメントも一緒に消えてしまう。それでは、なんかこのサイトの歴史も消してしまうようでチョイ切ない。この問題がクリアできなければページの統一はやめようと思った。

で、この問題をクリアすることは可能か? ひろまさ師匠に聞いてみたところ、できるらしい。

wp_posts と wp_comments の関連で記事とコメントのくくりつきが実装されていて wp_commentsテーブル の comment_post_IDというカラムの値が、wp_posts の IDカラムとくっついています。

てなわけで、ページを作成して、wp_posts の ID が分かったらそれをwp_comments のくくりつけたいコメントの comment_post_ID の値を入れてあげれば OK です。

とこともなげにおっしゃる。要するに wp_postsのIDとwp_commentsのcomment_post_IDが等しければ、コメントはくくりつけられるということだ。

そこで、統一したいページのURLとIDを拾う。これは管理»ページですぐわかる。それから、該当ページについたコメントのIDを拾う。テーマにも因るが<?php comment_ID() ?>でわかるのでソースを読んでひかえる。で、統一するページのIDを覚え、commnt_IDを検索してcomment_post_IDを修正する。これを繰り返すわけだ。もちろん、この作業に入る前にデータベースのバックアップは取っておく。

修正できたらホントにコメントが移動しているか確認する。OKならそのページのコメント総数を数え、posts_IDのcomment_countを修正する。そうしないと増えたコメントはカウントされていないので数が合わないのだ。

で、とどめに.htaccessで変更前のURLから新規URLへリダイレクトするようにする。

  1. RedirectPermanent /plugin-japanization-project/21x/stattraq/ http://wp.mmrt-jp.net/plugin-japanization-project/stattraq/

みたいな感じだ。

これでかっこよくなる予定。(は未定) やり直しが効かないのは人生だけで十分なのである。 :wink:

【参考】 データベース概要

ツイート
この記事と関連するかもしれない他の投稿

Top

タグ
タグ: ,

ナビゲーションリンク
| UP |

の記事をすべて見る。

Top

コメントが 2件あります

コメント RSS を使用するとこの投稿のコメントが確認できます。
TrackBack URI
コメントしてみる?

  1. ひろまさ さんのコメント
    2008年 2月 1日 21:48 # Japan Windows Mozilla Firefox

    うはーっ :oops:

    OKならそのページのコメント総数を数え、posts_IDのcomment_countを修正する。

    ですです。そうだ wp_posts サマリ入ってたんでした。。orz

    ちょうどお仕事で同じようなことやっていたのに考慮不足でした。ごめんなさい。

    さすがです!  8)

    返信する

  2. Masayan さんのコメント
    2008年 2月 2日 08:36 # Japan Windows Mozilla Firefox

    考慮不足でした。ごめんなさい。

    とんでもない。こちらこそ、教えていただきありがとうでした。ちょっとデータベース触るのはキモチワルイですが・・・。(苦笑)

    自分で考えないと脳が腐りますからね。<これも問題発言? :lol:

    返信する

Top

コメントをどうぞ


:x :wink: :twisted: :shock: :sad: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :cheesy: :arrow-u: :arrow-l: :arrow-d: :D :?: :) :!: 8)
あなたの情報 (必須) help

twitter

e-mail

Top

Web Services by Yahoo! JAPAN