hiromasa.zone : o)

2006/2/5 Sunday 投稿時の月齢:7.4  月名:弓張月(上弦)  潮汐:小潮 Moon:7.4[弓張月(上弦)]今日の心技体 : 好調期好調期低調期

WordPress 最速伝説 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 23:53

WordPress ME 2.0.1 にアップデートしました。 Otsukare さん、お疲れ様でした。快調に動いております。

去年は 間違いなく(!) WordPress 世界最遅をほこっていた hiromasa.zone でしたが、2.0 & 2.0.1 の最適化とホスティング会社さんのご好意と、心ばかりのチューニングで高速な部類になったかもしれません。 なんぴとたりとも・・・(←古い

MySQL 自体の設定もチューニングすればもっと速くなりそうですが、さすがにそこまでは手を出せないのでここで満足しておきます。 というか、はっきり言ってうちにあるローカルのしょぼサーバよりもずっと速いです。 🙂  オフピーク時で 0.3秒台をたたきだすようです。

では引き続きお楽しみください。(←気に入っている)

2006/2/4 Saturday 投稿時の月齢:6.3  月名:七日月  潮汐:小潮 Moon:6.3[七日月]今日の心技体 : 好調期好調期低調期

投稿内容を改変する WordPress プラグインのひな形 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 21:58

投稿内容を改変する WordPress プラグインのひな形です。

  1.  <?php
  2.  /*
  3.  Plugin Name:
  4.  Plugin URI: http://zone.maple4ever.net/blog/
  5.  Description:
  6.  Author: hiromasa
  7.  Version: 1.0
  8.  Author URI: http://zone.maple4ever.net/blog/
  9.  */
  10.  
  11.  $wppostfix = new WpPostFix();
  12.  
  13.  add_action('save_post', array($wppostfix, 'postfix'), 99);
  14.  add_action('edit_post', array($wppostfix, 'postfix'), 99);
  15.  add_action('publish_post', array($wppostfix, 'postfix'), 99);
  16.  
  17.  class WpPostFix {
  18.     
  19.      function postfix($postID) {
  20.         
  21.          global $wpdb;
  22.         
  23.          // DB から content を post_id から検索して持ってきて
  24.          $content = $wpdb->get_var("SELECT post_content FROM {$wpdb->posts} WHERE ID = '{$postID}' LIMIT 1");
  25.          // 適当に修正して
  26.          $content = $this->fixcontent($content);
  27.          // DB をなおした内容でアップデートする
  28.          $wpdb->query("UPDATE {$wpdb->posts} SET post_content = '{$content}' WHERE ID = '{$postID}'");
  29.         
  30.          // 次の人のために post_id 戻しておく
  31.          return $postID;
  32.         
  33.      }
  34.     
  35.      function fixcontent($content) {
  36.         
  37.          // 正規表現とかで置換する
  38.          $before = 'hogehoge';
  39.          $after  = 'mogemoge';
  40.          $content = preg_replace("/$before/i", $after, $content);
  41.          // 戻す
  42.          return $content;
  43.         
  44.      }
  45.     
  46.  }
  47.  ?>

投稿時に、add_action を使ってデータベースの内容をアップデートしてしまうコードです。 上の例はエントリ中に、hogehoge があったら mogemoge に置換します。

フィルターではないので、実データかきかえちゃいます。使うときはお気をつけください。 🙂

2006/2/2 Thursday 投稿時の月齢:4.4  月名:五日月  潮汐:中潮 Moon:4.4[五日月]今日の心技体 : 好調期好調前不安定期低調期

Google Sitemap Generator for WordPress Extreme Hack このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 23:57

Google Sitemap Generator for WordPress の調子がよろしくないというレポートが、ぼくを含めると3カ所にて。

Google Sitemap 限界説@Masayan さん

ここもidは1800を越え、記事を公開するときに非常に重い。MTのリビルトくらい重い! 😆

sitemap が限界のよう@Rauru Block さん

Google Sitemap Plugin を入れて半年が経過したのですが、記事数が1000を超えたせいか、ポスト時の処理がかなり重くなってきました。

メモリ不足・・・ @hiromasa.zone

あらら、サーバプロセスがメモリ不足で落ちていました。 sitemap.php なので Google Sitemap Generator for WordPress です。 こちらの gz 圧縮する部分でダウンするようです。

Rauru Block さんでも指摘があるように、Google さんアクセス時に動的生成する方法は普通に作ると生成に時間がかかりクローラが逃げていく可能性があります。 かといって Google Sitemap のような静的作成はこのようにポストに時間がかかったり、メモリ不足で落ちたりします。

さてどうしたもんか。 おそらく、高速動的生成は Rauru Block さんでやってくれるでしょう! ということでうちでは、、

Google Sitemap Generator for WordPress ,Extreme Hack

。。 若干ネタも含まれていますが興味がある方はどうぞ。

sitemap.php に次の修正を加えます。(3.0-RC1用)

  1.  function CheckForAutoBuild($postID) {
  2.      $this->Initate();
  3.      if($this->GetOption("b_auto_enabled")===true && $this->_lastPostID != $postID) {
  4.          // execute-sitemap hack by hiromasa -->
  5.          $ping_url = get_settings('siteurl') .'/wp-content/plugins/execute-sitemap.php';
  6.          $parts = parse_url($ping_url);
  7.          $argyle = @ fsockopen($parts['host'], $_SERVER['SERVER_PORT'], $errno, $errstr, 0.01);
  8.          if ( $argyle )
  9.              fputs($argyle, "GET {$parts['path']}?postid=$postID HTTP/1.0\r\nHost: {$_SERVER['HTTP_HOST']}\r\n\r\n");
  10.          //<--
  11.          //$this->_lastPostID = $postID;
  12.          //$this->BuildSitemap();   
  13.      }
  14.  }

sitemap.php と同じ、wp-content/plugins/ ディレクトリに下記の execute-sitemap.php を追加します

execute-sitemap.php のソース(コピペ用)

おわり。 え? 😛

XML の diff くらいしかとっていませんが、たぶん動くはずです。

まさにハッキッシュなコード。ポストの処理は見かけ上高速に終わり、メモリも別プロセスになるため多くアロケートできるハズ。

笑って許してください。一応、うちでは調子よく動いているようです。

Web 2.0 について考える このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 2:06

おいおい、いつの話だってわけですが Web 2.0。

言葉をたたき台に、どうあるべきかを考えるという Web 2.0 ですが、ぼくの Web 2.0 のイメージは、

  • 情報は Web 上に分散される。 されてもかまわない
  • それを自分でまとめる技術がある

という感じです。 要は新聞の切り抜きができるイメージ。 そして、切り抜く技術に検索であったり、タグづけであったり、最新のテクノロジーを用いて大きな情報量でも問題なく処理していく。 RSS は更新の通知の手段として、ソーシャルブックマークは人気の高い情報をみつける手段として、Ajax はプレゼンテーションレイヤーに操作性を加える。

深夜に書いているのでわけわかりませんが、そんなイメージです。

で、ブログは Web 2.0 かと聞かれれば、そうでは無いです。 正確に言うと書き手のとってはそうではない。 読む人には RSS とかフィード検索とかが標準装備されているので 2.0。

だって書き手は自分のブログの情報が分散することなんか望んでないだろうし、なんといってもドメインの下にいるのはただ一人、自分。 なんとか集約したがっているのです。 なのでぼくの 2.0 のイメージじゃないんですよね 🙂

さてこうして考えると、うちのサイトの手作り部分は実は 2.0 なのです。 しょぼ~い掲示板がついているのをご存じの方もいるかもしれませんが、実はトップページからドキュメントのページから、WP をのぞくサイト全体がひとつのシステム配下で動いています。 掲示板はサブのひとつ。

重要なのは、このシステムに載っている情報はどこにでもひっぱれるようになっていること。 ”Wordpress + Eclipse のドキュメント”とかはこのサーバに問い合わせればコピーすることなく自分のサイトに貼り付けられます。  まぁ今はろくなインターフェースかいていないので、机上の空論なんですけど・・・.

とはいえ、自分のための情報を集約するというのは、最新技術をもったとしてもまだまだ手間がかかるというもの。 ・・・誰かににきれいにまとめてもらうのが一番便利なのか?! な~んて。 😛

2006/2/1 Wednesday 投稿時の月齢:2.4  月名:三日月  潮汐:中潮 Moon:2.4[三日月]今日の心技体 : 好調前不安定期好調前不安定期低調期

買ってきました! このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - ひろまさ @ 0:28

先日最後の一冊を買われてしまって悔しい思いをした本を、同居の人が買ってきてくれました。

本屋さんでの出来事

“Web の大原則” もなかなか良かったのでこのシリーズはお薦めです。 書籍ではなく “ムック” (雑誌の棚にある)なのでいつの間にか店頭から消えています。 ご購入はお早めに。

こうなったら、ということで CSS 他2冊も追加購入。

プロとして

まぁ買ったところでここのサイトのデザインが良くなるわけではないですが、、 なかなか参考になります。 フルカラーで眺めているだけでも面白いので、テーマ作成に行き詰まったときにもいいかもしれませんね。 🙂

このサイトについて

このブログは引っ越しを行いコンテンツはフリーズしています。hiromasa.anotherへどうぞ。

Powerd By WordPress

We (Heart) WordPress

WordPressME Logo
WordPress Plugins

ブログ内検索

Todays Popular

WordPress Ring

はてなリング - WordPress -

情報

19 queries. 0.134 seconds.

このページの先頭へ