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

WordPress 6.4.3
広告WordPress・PHP を学べる本

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

概要説明

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

サイトヘルスステータス – 永続オブジェクトキャッシュを使用してください

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

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

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

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

キャッシュ用のファイルをダウンロード

https://downloads.wordpress.org/plugin/apcu.1.0.2.zip

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 プラグインを使用して動作確認

Query Monitor

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

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

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

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

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

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

Xアクセラレータ

Xアクセラレータ Ver.1

サーバーキャッシュ

ON

ブラウザキャッシュ

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

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

WordPress Developer Resources

SiteBeacon(サイトビーコン)

サイトが止まったら、すぐに気づける。

ホームページを 5 分ごとにチェックして、止まったとき・エラーが出たとき・SSL やドメインの期限が近いときに、メールでお知らせします。2 サイトまでは、ずっと無料で使えます。

SiteBeacon を見る サイトを直す相談をする

監視で気づいたあとの直す作業も、同じ担当がお受けします。