2008/7/15 火曜日

WordPress の PDO 化と SQLite 対応

Filed under: sqlite, WordPress — ne-zu @ 23:42:37 このエントリをはてなブックマークに追加

鵺的:想空間 » Blog Archive » WordPress の PDO 化と SQLite 対応(挑戦編)

WordpressでSQLite を使用できないかと挑戦されています。
SQLiteに日付型が無いために、ちょっと苦労しそうです。。SQLiteは数字と文字という扱いしかないですよね。PHPさえ入っていれば使えるというのは利点なんですが。。

2008/6/16 月曜日

知っていると便利なWordPressのTips

Filed under: WordPress — ne-zu @ 23:20:41 このエントリをはてなブックマークに追加

知っていると便利なWordPressのTips | コリス

お、これは便利ですね。WordPressでコマンドを忘れた時は、とりあえずココを見れば良さそう。

2008/4/5 土曜日

WordPress における日付/時間の表示

Filed under: WordPress — ne-zu @ 22:54:38 このエントリをはてなブックマークに追加

小粋空間: WordPress における日付/時間の表示とフォーマット変更方法

とりあえずの

PHP:
  1. <?php the_time() ?>

引数を与えることで文字フォーマットも指定できます。
詳しくはリンク先で!

2008/3/31 月曜日

Wordpressで記事投稿者を表示する

Filed under: WordPress — ne-zu @ 18:48:24 このエントリをはてなブックマークに追加

記事投稿者を表示するthe_author | WordPress & Business メモ
WordPressで投稿記事の投稿者を表示するテンプレートタグをよく失念するのでメモ。

PHP:
  1. ①ログイン名を表示
  2.   <?php the_author_login(); ?>
  3.  
  4. ②ファーストネーム名を表示
  5.   <?php the_author_firstname(); ?>
  6.  
  7. ③ラストネーム名を表示
  8.   <?php the_author_lastname(); ?>
  9.  
  10. ④ニックネーム名を表示
  11.   <?php the_author_nickname(); ?>

メインインデックスの

HTML:
  1. <p class="postmetadata">

の次あたりに

PHP:
  1. <?php if(have_posts()) : ?>
  2.  投稿者名:<?php the_author_nickname(); ?> |
  3. <?php endif; ?>

などとするのがスマートじゃないでしょうか。

2008/3/30 日曜日

WordPress高速化をやってみました

Filed under: 高速化, WordPress — ne-zu @ 11:36:40 このエントリをはてなブックマークに追加

PHPの種 ブログ » WordPress高速化

先日の記事で取り上げたWordPress高速化を実際に行ってみました。

とりあえずのベンチとしてabで

CODE:
  1. $ ab -n 100 -c 10 [blog_url]

とした結果がこちら。(残念ながらPHPの種ブログ本体ではありません)

Concurrency Level: 10
Time taken for tests: 23.312433 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 3896984 bytes
HTML transferred: 3876178 bytes
Requests per second: 4.29 [#/sec] (mean)
Time per request: 2331.243 [ms] (mean)
Time per request: 233.124 [ms] (mean, across all concurrent requests)
Transfer rate: 163.22 [Kbytes/sec] received

RPS(Requests per second)が4.29といった感じです。pluginも全く入れていないWordpressにテンプレートだけ変更したもので、出力結果もほぼデフォルト(直近記事10件、サイドバーも変更無しなど)のトップページにアクセスした結果です。このベンチ結果でWordpressのテンプレートサイズやサーバスペックをご想像いただければと思います。みなさん、デフォルトはどのぐらいの速さなんですかね。

まずは、XCache。XCacheの導入についてはPHPの種でXCacheをインストールしてみました。という記事で詳しく書いていますのでご参考くださいマセ。というわけでXCacheを

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
[xcache.coverager]
xcache.coverager = Off
xcache.coveragedump_directory = "/tmp/xcachecov"

としてベンチを実行した結果が

Concurrency Level: 10
Time taken for tests: 20.157960 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 4046028 bytes
HTML transferred: 4025016 bytes
Requests per second: 4.96 [#/sec] (mean)
Time per request: 2015.796 [ms] (mean)
Time per request: 201.580 [ms] (mean, across all concurrent requests)
Transfer rate: 196.00 [Kbytes/sec] received

RPSは4.96。ちょっと早くなりました。XCacheは物によってすごく有効なんですが、今回はそれほどでもないでしょうか。まあ、スクリプトに何も手を入れず早くなるのはそれだけですごいですよね。まあ、XCacheはスクリプト側でキャッシュを指定していくのが真っ当な使い方かもしれません。

次にmysqlのクエリーキャッシュクエリ結果のキャッシュを参考に、my.cnfの[mysqld]ディレクティブに

[mysqld]
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=24M
query_cache_type=1

を追加してmysql再起動。ベンチの結果は

Concurrency Level: 10
Time taken for tests: 17.553935 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 4064254 bytes
HTML transferred: 4043242 bytes
Requests per second: 5.70 [#/sec] (mean)
Time per request: 1755.393 [ms] (mean)
Time per request: 175.539 [ms] (mean, across all concurrent requests)
Transfer rate: 226.05 [Kbytes/sec] received

RPSは5.70。かなり早くなりましたね。なんだかんだでMySQLへの問い合わせがキャッシュできるのは大きいようです。

次はWordpres標準のキャッシュ機構を使ってみましょう。

PHPのテクメモ | WordPress高速化への道

・ディレクトリ「wp-content/cache」を作成し、パーミッションは777。
・設定ファイル「wp-config.php」に以下の一行を追加(一番上がいい)。
 define('ENABLE_CACHE',true);

キャッシュを有効にした結果は

Concurrency Level: 10
Time taken for tests: 14.263548 seconds
Complete requests: 100
Failed requests: 92
(Connect: 0, Length: 92, Exceptions: 0)
Write errors: 0
Total transferred: 4059956 bytes
HTML transferred: 4038944 bytes
Requests per second: 7.01 [#/sec] (mean)
Time per request: 1426.355 [ms] (mean)
Time per request: 142.635 [ms] (mean, across all concurrent requests)
Transfer rate: 277.91 [Kbytes/sec] received

RPSは7.01。ぐぐっと早くなりました。

最後はwp-cacheというpluginを使ってみます。
http://mnm.uib.es/gallir/wp-cache-2/からwp-cacheをダウンロードして、pluginフォルダにコピーします。
サイトにも書いてありますが、gzip圧縮設定を無効にしておきます。php.iniで

zlib.output_compression = On

をオンにしておけば、wp-cache側でやってくれるようです。

後は、プラグインタブでwp-cacheを有効にして、設定タブのwp-cache項目で、環境が整っていなければその理由が、整っていればwp-cacheのステータスが確認できるようになります。
私の場合は、

  • CODE:
    1. $ ln -s /path/to/blog/wp-content/plugins/wp-cache/wp-cache-phase1.php /path/to/blog/wp-content/advanced-cache.php

  • wp-config.phpにdefine('WP_CACHE', true);を追加
  • wp-contentディレクトリを書き込み可能に

といった変更を加えました。出力ソースの最後あたりに

HTML:
  1. <!-- Dynamic Page Served (once) in 0.237 seconds -->
  2. <!-- Cached page served by WP-Cache -->

と出るようになればキャッシュ成功です。
そして結果のほうは、

Concurrency Level: 10
Time taken for tests: 7.665901 seconds
Complete requests: 100
Failed requests: 90
(Connect: 0, Length: 90, Exceptions: 0)
Write errors: 0
Total transferred: 4242322 bytes
HTML transferred: 4215566 bytes
Requests per second: 13.04 [#/sec] (mean)
Time per request: 766.590 [ms] (mean)
Time per request: 76.659 [ms] (mean, across all concurrent requests)
Transfer rate: 540.31 [Kbytes/sec] received

RPSは13.04と素晴らしい速度に!
しかしwp-cacheはページの全てをキャッシュしてしまうのでインタラクティブなサイトなどには向きませんし(これは全てのキャッシュ機構に言えることではありますが)、検索してみると色々と問題もあるようです。

Wordpress標準のキャッシュ機構でかなり満足いく結果が出ましたので、私はここまでにしようかなと思います。

ちなみに、wp-cacheプラグインがあれば、デフォルトキャッシュ機構はあまり意味をなさないようです。上記全ての高速化を有効にしたままの結果が

Requests per second: 15.86 [#/sec] (mean)

といった感じですが(二回目以降のabなので、上記結果より早くなっています。最初の問い合わせからキャッシュが効いていますから)

デフォルトのキャッシュ機構を無効にした結果が、

Requests per second: 15.73 [#/sec] (mean)

と、あまり変わらない結果でしたので。

2008/3/28 金曜日

WordPress高速化

Filed under: 高速化, WordPress — ne-zu @ 23:22:45 このエントリをはてなブックマークに追加

PHPのテクメモ | WordPress高速化への道

-WordPressのキャッシュ機能を利用

・ディレクトリ「wp-content/cache」を作成し、パーミッションは777。
・設定ファイル「wp-config.php」に以下の一行を追加(一番上がいい)。
 define('ENABLE_CACHE',true);

-ページ単位でキャッシュする(プラグインの利用)

などのやり方が載っていて参考になります。
wordpressはやはり結構重いんですかね。pingなどを沢山飛ばしているとかなり重くなりますが。

2008/2/3 日曜日

Wordpressにはてなブックマークへのリンクを追加するプラグイン

Filed under: プラグイン, WordPress — ne-zu @ 21:52:56 このエントリをはてなブックマークに追加

このブログにも、はてブへのリンクボタンを追加したいな、と思って探したらWordpress用のプラグインがあったので導入してみました。
それがwp-hatenaです。

使い方はとっても簡単。普通にpluginをダウンロードしてpluginフォルダに入れて、各種設定から有効化するだけです。
そして、ボタンを表示したい場所に

PHP:
  1. <?php if(isset($wph)) $wph->addHatena(); ?>

と追加するだけ。私は日付の横に入れましたが、

PHP:
  1. <div class="meta">
  2. <?php _e("Filed under:"); ?>
  3. <?php the_category(',') ?> &#8212;
  4. <?php the_author() ?> @ <?php the_time() ?>
  5. <?php if(isset($wph)){$wph->addHatena();}?>
  6. <?php edit_post_link(__('Edit This')); ?>
  7. </div>

どうでしょうか。

2008/1/8 火曜日

wordpressでオンラインストアのプラグイン

Filed under: プラグイン, WordPress — ne-zu @ 22:18:28 このエントリをはてなブックマークに追加

gesellschaft - WP e-Commerce
wordpressでオンラインストアのプラグインです。そういうのもあるんですね。

2008/1/4 金曜日

Wordpressのテンプレートタグ解説

Filed under: WordPress — ne-zu @ 23:47:52 このエントリをはてなブックマークに追加

Wptags.com
Wordpressのテンプレートタグを解説されています。

PHP:
  1. <?php wp_get_archives('arguments'); ?>

とかのアレです。
テーマをいじる際に便利ですね。

2007/11/10 土曜日

WordPress 2.3ではデフォルトでタグ機能が。

Filed under: WordPress — ne-zu @ 9:48:07 このエントリをはてなブックマークに追加

WordPressでタグ機能のpluginを探していたら、WordPress 2.3には標準機能でタグ機能がついているんですね。というわけでデータベースのテーブルも標準で変更が加えられていましたので、さらっと確認。power source*さんで、power source* » WP2.3: データベース変更点の確認
という記事をUPされていたので参考にさせていただきました。taxonomyがややこしいですね。

次のページ »

Powered by PHP-SeeD and WordPress ME