WordPressプラグインをいっぱい入れすぎた場合の簡単に出来る高速化
WordPressはとても優れたプラグインが数多く存在します。そのため調子に乗ってインストールしまくると実行クエリ数が68個だとかとんでもない数字に!!少しでも速度を稼ぎたい人へのTIPSです。
早い話が管理画面用のプラグインを管理画面以外で動かす必要性は無いので、無駄にインスタンスを生成するところをis_admin()を使ってインスタンスの生成を防ぐということです。
プラグインの中には、コンストラクタ等でオプションの値などを取得するために大量のクエリを吐くものもあります。
pluginはwp-setting.phpファイルの中でinclude_once(WP_PLUGIN_DIR . ‘/’ . $plugin);で読み込まれています。
includeの中でreturnを使用すると、その時点でファイルの読み込みは終了しreturn文の引数値を返り値で返します。
なので例えばプラグインの先頭に以下のようなコードを挿入します。
if (!is_admin() && !defined('DOING_CRON') && !is_robots()) {
return;
}
すると管理画面とcron実行、ロボットのアクセス以外では、プラグインの実行を中止し、余計なコードが動かなくなります。
TinyMCE Advancedに対策コードを入れる場合は、一行目から対策コードまでは以下のようになります。ファイルはtinymce-advanced.phpです。
<?php
/*
Plugin Name: TinyMCE Advanced
Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
Description: Enables advanced features and plugins in TinyMCE.
Version: 3.2
Author: Andrew Ozz
Author URI: http://www.laptoptips.ca/
Some code and ideas from WordPress(http://wordpress.org/). The options page for this plugin uses jQuery (http://jquery.com/).
Released under the GPL v.2, http://www.gnu.org/copyleft/gpl.html
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
if (!is_admin() && !defined('DOING_CRON') && !is_robots()) {
return;
}
自分がこの方法で試してみたプラグインは以下
- Dean’s FCKEditor For Wordpress
- Google XML Sitemaps Generator for WordPress
- JSeries Notifier
- MaxBlogPress Ping Optimizer
- rc:custom_field_gui_utility
- TinyMCE Advanced
- WP Security Scan
挙げたプラグインは全ては動作させていないのですが(全部入れたら競合しちゃいます)、クエリ数はだいぶ減りました(それでも多い)。
一時期はキャッシュ無しで数秒だったのがいちおう1秒以内に。。。本当は0.2秒を切ると良いのだが、さすがに無理やな(汗
使用環境はWordPress 2.7.1、プラグインは全て2009/2/28の時点での最新版です。
※ 改造の際には良く検証してください。
あわせて読む
コメント投稿
1件のトラックバック
[...] WordPressプラグインをいっぱい入れすぎた場合の簡単に出来る高速化 | とりさんのソフト屋さん (tags: wordpress) /* [...]