WordPress 永続オブジェクトキャッシュAPC設定を設定して高速化 (エックスサーバー)

広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

概要説明

WordPressの永続オブジェクトキャッシュ対応。エックスサーバーでは標準でapcが使用可能。サーバーのキャッシュ周りの設定によっては動作が安定しない場合があります。

WordPress 永続オブジェクトキャッシュAPC設定を設定して高速化 (エックスサーバー)

エックスサーバーでは「APCu」が標準で利用できるようなので対応してみる

【2026 年 10 月の追記・注意】エックスサーバーの APCu は、PHP の処理(プロセス)ごとに別々のキャッシュになることがあります。その場合、記事を保存してキャッシュを消しても、ほかのプロセスのキャッシュは残り、古い内容が出ることがあります。試すときは、表示がおかしくないかをよく確かめ、おかしければ wp-content/object-cache.php を消して元に戻してください。

エックスサーバー公式ページ

object-cache.php 修正

object-cache.php
// 直接ファイルにアクセスしたらエラーになる処理
!defined( 'ABSPATH' ) and exit;

// ACPに対応していないサーバーではキャッシュを使用しない
if (!function_exists('apcu_fetch')) {
    return false;
}

// 管理画面はキャッシュ対象外(ヘルスチェックページは対象)
if (is_admin() && !($_SERVER['SCRIPT_NAME'] == '/wp-admin/site-health.php')) {
    return false;
}

// WordPressにログインしている場合はキャッシュクリア
$login_flag = 0;
foreach ($_COOKIE as $key => $value){
    if (false !== strpos($key, 'wordpress_logged_in_')) {
        $login_flag = 1;
    }
}
if ( $login_flag ) {
    if (function_exists('apcu_clear_cache')) {
        apcu_clear_cache();
    } else if (function_exists('apc_clear_cache')) {
        apc_clear_cache();
    }
}

object-cache.php ファイルの先頭に上記を追加

※ この書き換えには注意があります。管理画面でキャッシュを使わないと、管理画面で変えた設定(メニュー・ウィジェットなど)が表のページのキャッシュに反映されず、古い内容が出続けることがあります。また、ログイン中は表のページを開くたびに全部消えるので、キャッシュの意味が薄くなります。オブジェクトキャッシュは全部の処理で同じものを使う前提なので、ファイルは手を入れずにそのまま使うほうが安全です。

ファイルアップロード

path
/wp-content/object-cache.php

記事編集時にもキャッシュをクリアするように修正

functions.php
/*----------------------------------------------------
 APCキャッシュを記事編集時に全てクリアする
----------------------------------------------------*/
if ( !function_exists( 'apc_clear_cache_post' ) ){
    function apc_clear_cache_post($post) {
        if (function_exists('apcu_clear_cache')) {
            apcu_clear_cache();
        } else if (function_exists('apc_clear_cache')) {
            apc_clear_cache();
        }
    }
    add_action('save_post', 'apc_clear_cache_post');
}

Query Monitor プラグインを使用して動作確認

WordPress 永続オブジェクトキャッシュAPC設定を設定して高速化 (エックスサーバー)

オブジェクトキャッシュ無効

WordPress 永続オブジェクトキャッシュAPC設定を設定して高速化 (エックスサーバー)

オブジェクトキャッシュ有効

「ログインしている場合はキャッシュクリア」の部分をコメントアウトしてQuery Monitorにてキャッシュ有効時の値が確認できます

エックスサーバー側のキャッシュ設定

Xアクセラレータ

Xアクセラレータ Ver.1

サーバーキャッシュ

ON

ブラウザキャッシュ

ON[全ての静的ファイル]

上記設定で今のところ問題なく稼働できています

WordPress Developer Resources

関連機能

  1. アイキャッチ画像の設定機能を追加したい場合

  2. WordPress のユーザーの編集画面に項目を足す:所属店舗などをプロフィールに保存して表示する

  3. WordPress dashicons.min.cssファイルの読み込みをログイン時だけにする ( WordPress公式アイコン )

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP