世紀の荒技でkougabuを動かす

wp-kougabu 1.00 RC リリース

さて、噂によると Masayan さんが試してくれるとか、くれないとか。。 :-)

むかしは、hiromasa.zone が記事多かったので負荷試験できたのですが、いまは Masayan さんだよりであります(笑)

なんて、言われて黙ってるわけにはいきません。しかも、ひろまさプラグイン愛好家ですよ?! ボクが限界性能担当になろうじゃないですか。でも試したいのは山々でしたが、一つ障害がありました。

メディアライブラリに画像が一枚もない!

・・・ことでした。そうです、IImage-Browser愛好家だったので、登録できていないのです。 :cry:

当初それほど深く考えていませんでしたが、いろいろひろまささんに聞いてだんだんと不安になります。

1. メディアアップローダーから「投稿に挿入」しなくても「添付された投稿」に入っているが、投稿に「挿入」ボタンを押下する時点で投稿と画像がくくりつけられる。
これはちょっと違ってたみたい

2. 画像ファイルが上書きできない。
ある画像をメディアアップローダーで転送した場合、元画像+あらかじめ決めているサムネイルサイズが入ったファイル名の3つの画像が加わり、今までアップロードしていたファイル名と異なってしまうため。

3. 過去記事に画像を挿入しても現在の時間になりライブラリは大混乱してしまう。
単純にアップロードした順に変わってしまうし、過去記事との時系列はダダ崩れ。

4. postsテーブル内がぐちゃぐちゃになってしまう。
普通にポストすると画像→記事の順にレコードされるが、後で画像だけアップロードすると最新記事の後に画像情報が入ってしまうため。

ざっと考えただけでもこれくらいあります。

後々何かあった時に記事と画像がバラバラでは絶対に困ると思い、IDを並び替えたいと考えました。この場合、パーマリンク(/%year%/%monthnum%/%day%/%post_id%/)が仇となり、URLが狂うことになります。ところが、/%year%/%monthnum%/%day%/%postname%/に変更し、スラッグを現URLのIDに変更すれば問題は解決します。不幸中の幸いでした。

ひろまささんに相談したところ、何とかなるのではないかと言われ、だんだんと出来る気分になってしまったのが苦労の始まり。(苦笑) とにかく、ID並び替えはひろまささんに任せて、URL問題から着手。

えいやーと、

UPDATE `wp_posts` SET post_name=`ID`;

として、ページのスラッグが変わって泣きそうになりました。

UPDATE `wp_posts` SET post_name=`ID` WHERE `post_type` = "post";

こうだったのですね・・・。

とにかく、これで裏で何をしてもURLはそのままなのでバレる?ことはありません。過去記事を編集して、フラッシュメディアアップローダーで画像を再貼り付けしていきます。加えて、postsテーブルに増えていく画像データの登録時間をPHPMyAdminで過去記事の時間に合わせつつ・・です。

手動ですよ、ええ。

この記事ID3000を超える7年に及ぶ記事を画像があるものだけだとはいえ、手動でちまちま編集していくという途方もなく地味な作業を誰が予想し得たでしょうか。こうする前に世界中から変換する記事を探しましたが、それらしいものはなかったとです。kougabuのようなプラグインはまだないのですね。しかし、昔からWordPressを使ってきてる人たちにはきびしい仕打ちですな。orz

約1ヶ月かかって、総数1442枚、ページにして95ページの大作が完成。燃え尽きました。

スクリプト走る!

月日は流れて、7月下旬。ひろまささんからメールがきた。ウチのサイト特注のpost_id 整頓プログラム – その名も mmrt-renumber.php !- が届いたのだ。サーバ上で行うとタイムアウト喰らうとか、負荷がかかりすぎるので、ローカルにブログをコピーしてコマンドプロンプトから操作。エンターを押下するとダーーーと走り始める。あぁ、感動。確かにこの時はエラーが出なかったと思う。(既に覚えていない) どうもローカルではパーマリンクがうまく動かないので、サーバ上のデモサイトにデータを流し込んで確認する。と・・・、タグはいいようなのだが、カテゴリが反映されていない記事が多数あることが発覚。ひろまささんに通報する。

返事が来る間も暇を見ては、何度となく試みるも Fatal Error が出てしまう。2台のXPのローカルで、Ubuntuのローカルで試すも Fatal Error。

そして、9月。いろいろと試行錯誤したものの、決定打なし。SQLデータをひろまささんに見てもらう。すると、term_relationshipsテーブルの中にどこともリンクしていないデータがあり、エラーになってしまっているとのこと。クリーニング機能付き新mmrt-renumber.phpを作ってもらい、トライ。

今度はエラーも出ず、終了。このデータを再びデモサイトに流し込んで確認する。およ、postsテーブルのguidのURLがところどころローカルURLになってますな。ない頭を捻り、これでどうだ!

UPDATE wp_posts SET guid = REPLACE( guid, 'http://127.0.0.1/wp', 'https://wp.mmrt-jp.net' );

あとは・・・おー、Plugin Japanization Projectページが白紙。っていうか、ページはスラッグを決めてるからURLは同じなんだけど、wp_list_pagesでID指定してるんだよね・・・。orz

で、めでたくwp-kougabu導入。しかし、あまりに画像が多く、1ページで nextpage ではページ送りが汚い。そこで、ナビゲーションページを作り、子ページを年別してやる。ここでまた問題が・・・。子ページのスラッグを年号(2009とか)にすると kougabu はページと間違うらしい。(つまり、2009ページ・・・) 数字じゃないスラッグにすると大丈夫みたい。

kougabu

MMRT系光画部

これだけ苦労して導入したわけだが、見てる人には何も変わってないというすごいオチがあったのでした・・・・。 :sad:

ひろまささんには大変お世話になりました。彼なしでは、この技はできなかったでしょう。この場を借りてお礼申し上げます。 :wink:

# なにかおかしいところがあったら、コメントしていただけるとうれしいです。

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

コメント

  1. ひろまさ より:

    こんにちは、こんにちは。 :)

    いやぁ、気合いが足りなくていろいろ遅くなってしまいましてすいません。
    苦節数ヶ月の成果がここに! ありがとうございました、お疲れ様でした。

    今回改めてデータベースみていていろいろ勉強になったりしました。。
    アップグレードインストールすると、link_category とかのカラム残っていたりするんですね。
    ちょっと混乱したくらいにして(笑) (新規インストールだとないのです)

    kougabu さん、限界突破で無事安定稼働していることを確認しました。 :mrgreen:
    近くに住んでいたらお酒を持って祝杯を挙げたいくらいの気持ちです(笑)

    • Masayan より:

      いらっしゃい、師匠。
      ホントにホントにお世話になりました。

      アップグレードインストールすると、link_category とかのカラム残っていたりするんですね。

      へぇ、新規インストールだとないんだ。1.0系からずっとアップグレードの希少品ですよ?!(笑

      うんうん、kougabuすごす!
      遠くでも祝杯あげましょ。 :mrgreen:

  2. WordPress のメディアライブラリ機能

    ぼくが WordPress で好きな機能の一つに「メディアライブラリ」があります。
    ブログの投稿と、その投稿内にある画像や音声などのメディアのひも付けを行ってくれるまっことに便利なもの…

コメントをどうぞ

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

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

プロビロナム