WordPressの設定のコツ
多くのWordPressユーザーは、wp-config.php
ファイルがWordPressのデータベースの鍵であることをご存じでしょう。 ここでは、データベース名、ユーザー名、パスワード、および場所(セキュリティ キー、データベース プレフィックス、ローカライズ言語など、その他のものと共に)を設定します。
WordPress の設定ファイルである wp-config.php
のスクリーンショットを、まだなじみのない方のために示します。php ファイルには、WordPress がデータベースに接続するために必要な情報が含まれています
しかし、多くのユーザーが知らないのは、wp-config.php
ファイルを使用してさまざまな設定を指定し、WordPress を使用したサイトの機能、パフォーマンス、およびセキュリティを向上させることができる、ということです。 この記事では、私が長年にわたって集めてきたこれらの設定上のトリックをできるだけ多く紹介します。 このガイドでは、WordPress Codexに記載されているすべての内容に加えて、おそらくこれまで見たことのないような追加トリックも紹介します。 もし、他にWordPressの設定に関するトリックをご存知でしたら、コメント欄で教えてください。 WordPress の設定トリックについては、次の記事をご覧ください。 ”
Database Credentials *
This set of four configurational definitions are required for WordPress to connect to the database:
define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');
Database name, username, and password should be readily available to database creation, but the DB_HOST
value may be more difficult to obtain.” (データベース作成中に、データベースを作成する際のユーザー名、パスワード、およびパスワードがすぐに得られるはずです。)
Database Credentials * (データベースの資格情報) 最も一般的には、この値は単に「localhost
」ですが、それがうまくいかない場合は、他のいくつかの値を試してみてください。
- 1and1 Hosting –
db12345678
- DreamHost –
mysql.example.com
- GoDaddy –
h41mysql52.secureserver.net
- ICDSoft –
localhost:/tmp/mysql5.sock
- MediaTemple (GS) –
internal-db.s44441.gridserver.com
- ペアネットワークス –
dbnnnx.pair.com
- Yahoo –
mysql
データベースサーバーに別のポートを指定することも可能です。 以下はその例です:
define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');
もうひとつのクールなトリックは、データベース サーバーの値を自動的に検出することです:
define('DB_HOST', $_ENV{DATABASE_SERVER});
これらのすべてが失敗するか、まだ問題がある場合は、ホスト プロバイダーに相談してみてください。
データベースのキャラクタセットと照合順序 *
WordPress バージョン 2.2 では、MySQL データベース テーブルのキャラクタセットを指定することができます。 一般的に、デフォルトの文字セット値であるUTF-8を変更する理由はなく、すべての言語をサポートしているため通常は完璧です。 6680>
define('DB_CHARSET', 'utf8');
WordPressのバージョン2.2は、照合順序を指定することができます。 照合順序の設定は、通常、キャラクタセットに応じて MySQL によって自動的に処理されますが、この定義のデフォルト設定で行われているように、照合順序の値を空白にすることによって有効になります。 以下は、デフォルト(および推奨)の設定です。
define('DB_COLLATE', '');
wp-config.php
ファイルに存在する場合のみ使用してください。Security Keys *
ワードプレス 2.7 では、より優れたクッキー暗号化を保証するために、4 つのセキュリティ キーが利用可能です。 これらのキーはバックグラウンドで静かに動作し、できるだけランダムで複雑なものであるべきです(いいえ、それらを覚えておく必要はありません)。 これらの鍵を生成する最も簡単な方法は、WordPress.org の secret-key サービスで自動的に生成することです。 このリンクにアクセスし、結果を wp-config.php
ファイルにコピー/貼り付けるだけです。 これらのキーはいつでも変更可能であり、そうすると、ユーザーの既存の Cookie がすべて無効になるため、ユーザーはサイトに再ログインする必要があることに注意してください。
テンプレート パスとスタイルシート パス
ブログ アドレスとサイト アドレスの定義済み定数 (前のセクションを参照) と同様に、サイトのテンプレート パスおよびスタイルシート パスのデータベース クエリを排除することによって、パフォーマンスを向上させることも可能です。 以下は、これら 2 つの定義のデフォルト値です。
define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());
そのままでは、これら 2 つの定義はまだデータベースに照会していますが、値をハードコーディングすることにより、これらの余計なクエリーを排除することができます:
define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');
Disable Cache and Cache Expiration
これら 2 つのオプションは、オブジェクトベースのキャッシュメカニズムをデフォルトとしている古いバージョンの WordPress に適用されます。 最初の定義では、キャッシュを有効または無効にすることができ、2 番目の定義では、キャッシュの有効期限を指定できます。
Enable the cache
define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds
Disable the cache
define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache
クッキードメインの指定
サイトのクッキードメインを指定するには、いくつかの理由があります。 よくある例としては、サブドメイン上の静的コンテンツへのリクエストでクッキーが送信されないようにすることが挙げられます。 この場合、この定義を使用して、静的でないドメインにのみクッキーを送信するようにWordPressに指示します。 これにより、パフォーマンスが大幅に向上する可能性があります。 以下は、さまざまなクッキーパスとクッキードメイン情報を設定する例です。
define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');
Override File Permissions
お使いのウェブホストのデフォルトファイル権限があまりにも制限されている場合、これらの定義をWordPress設定ファイルに追加すると、問題を解決できる可能性があります。 パーミッションの値を引用符で囲む必要はないことに注意してください。 例:
define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);
View All Defined Constants
Need to view all predefined constants? 朗報です。この PHP 関数は、現在定義されているすべての定数の配列を返します:
print_r(@get_defined_constants());
Custom User and Usermeta Tables
カスタム ユーザーおよびユーザー メーター テーブルについてはどうですか?
define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');
FTP/SSH 定数
この構成定義のセットは、ユーザーが FTP/SSH 接続を検索および利用するのに役立つよう設計されています。 以下は、FTP/SSH 更新のための定義済み定数の例です:
define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server
Moving Your wp-content directory
WordPress バージョン 2.6 では、wp-content
ディレクトリのデフォルト位置を変更することが可能です。 これには、サイトのセキュリティの強化や、FTP による更新の円滑化など、いくつかの理由があります。 例:
// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');
また、plugins
ディレクトリのカスタム パスを指定することもできます。 これは、特定のプラグインとの互換性の問題に役立つ場合があります。
// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');
Dealing with Post Revisions
最近のバージョンの WordPress は、ユーザーがブログ記事の異なるバージョンを保存し、必要に応じて以前に保存したバージョンに戻すこともできる投稿リビジョン・システムを提供します。 この驚くほど素晴らしい機能をどの程度嫌っているかにかかわらず、ここでは、あなたにとって有用であると思われるいくつかの設定定義を紹介します。 デフォルトでは、WordPress は 60 秒ごとに作業を保存しますが、この設定を好きなように変更することができます。 しかし、サーバーにストレスを与えたくない限り、あまり無茶はしないでください;)
define('AUTOSAVE_INTERVAL', 160); // in seconds
Debugging WordPress
バージョン 2.3.1 から、ユーザーはサイトのデバッグを助けるために特定のエラーや警告を表示することができるようになった。 WordPress バージョン 2.5 では、エラー報告を有効にすると、報告レベルが E_ALL
に引き上げられ、非推奨の関数に対する警告が有効になります。 デフォルトでは(つまり、wp-config.php
ファイルに定義が指定されていない場合)、エラー報告は無効です。
define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)
Error Log Configuration
ここで、WordPress を使用したサイトの基本的なエラーログを有効にする簡単な方法について説明します。 php_error.log
」というファイルを作成し、サーバー書き込み可能にして、好きなディレクトリに置きます。
@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');
Increase PHP Memory
If you are receiving error messages that your “Allowed memory size of xxx bytes exhausted”, this setting may help the issue resolved. WordPress バージョン 2.5 では、WP_MEMORY_LIMIT
の定義により、PHP が使用できる最大メモリ量を指定することができます。 デフォルトでは、WordPressは自動的にPHPのメモリを32MBまで増やそうとするので、この設定は32MBより大きい値に対してのみ必要です。 ウェブホストによっては、PHPのメモリを増加させる機能を無効にしているものもあるので、懇願する必要があるかもしれないことに注意してください。 以下に例を示します。
define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');
Save and Display Database Queries for Analysis
この手法は、データベース クエリを保存し、その後の分析用に情報を表示するのに最適な手法です。 このプロセスでは、各クエリ、関連する関数、およびその合計実行時間が保存されます。 この情報は配列として保存され、任意のテーマ テンプレート ページに表示することができます。 これを行うには、まず、次のディレクティブを wp-config.php
ファイルに追加します:
define('SAVEQUERIES', true);
次に、アクティブなテーマのフッターに、次のコードを配置します:
// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}
この関数の 1 行バージョンです:
<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>
Control Proxy Access
WordPress 2.X 以降では、この関数の 1 行バージョンがあります:
// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}
Notes
- * コードがデフォルトの
wp-config.php
ファイルに含まれていることを示します - ブラジル系ポルトガル語翻訳 (by Tárcio Zemel)