{"id":5356,"date":"2026-05-22T16:36:58","date_gmt":"2026-05-22T07:36:58","guid":{"rendered":"https:\/\/www.lining-moon.casa\/andplus.co.jp\/?p=5356"},"modified":"2026-05-22T16:49:04","modified_gmt":"2026-05-22T07:49:04","slug":"wordpress-apcu-5356","status":"publish","type":"post","link":"https:\/\/code-plus.jp\/gp\/wordpress-apcu-5356\/","title":{"rendered":"WordPress\u3067\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<!-- title: WordPress\u3067\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\r\ndescription: WordPress\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u306b\u6709\u52b9\u306a\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3092\u89e3\u8aac\u3002object-cache.php \u306e\u914d\u7f6e\u304b\u3089\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\u8a2d\u5b9a\u307e\u3067\u3001\u30b3\u30fc\u30c9\u4ed8\u304d\u3067\u624b\u9806\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\r\ntags: WordPress, APCu, \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5, \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584, \u30b5\u30a4\u30c8\u9ad8\u901f\u5316, PHP, object-cache.php, functions.php -->\r\n<p>WordPress\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u7b56\u306e\u3072\u3068\u3064\u306b\u3001<b class=\"fw-600\">\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09<\/b>\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001APCu\u3092\u4f7f\u3063\u305f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u4ed5\u7d44\u307f\u3068\u3001\u5b9f\u969b\u306e\u8a2d\u5b9a\u624b\u9806\u3092\u30b3\u30fc\u30c9\u4ed8\u304d\u3067\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\r\n\r\n<!-- \u2605\u76ee\u6b21\u30ea\u30b9\u30c8 -->\r\n<ul class=\"tocList mt-1r\" data-toc-id=\"js-tocBWGD\" style=\"height:28rem\"><\/ul>\r\n<ins class=\"tocBtn is-fixed\" data-toc-id=\"js-tocBWGD\"><\/ins>\r\n\r\n\r\n\r\n\r\n<hr class=\"separator mx-auto mt-3r\" \/>\r\n\r\n<h2 class=\"fz-xl\">\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3068\u306f<\/h2>\r\n<p>WordPress\u306f\u6a19\u6e96\u3067\u3082\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u3053\u308c\u306f\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u307e\u305f\u3044\u3067\u4fdd\u6301\u3055\u308c\u306a\u3044<b class=\"fw-600\">\u975e\u6c38\u7d9a\u30ad\u30e3\u30c3\u30b7\u30e5<\/b>\u3067\u3059\u3002\u6bce\u56de\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u540c\u3058\u30af\u30a8\u30ea\u3092\u767a\u884c\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\r\n<p><b class=\"fw-600\">\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5<\/b>\u3092\u4f7f\u3046\u3068\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30af\u30a8\u30ea\u7d50\u679c\u3084\u8a08\u7b97\u7d50\u679c\u3092\u30b5\u30fc\u30d0\u30fc\u306e\u30e1\u30e2\u30ea\u306b\u4fdd\u6301\u3057\u3001\u6b21\u56de\u4ee5\u964d\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u306f\u518d\u30af\u30a8\u30ea\u306a\u3057\u306b\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002\u7d50\u679c\u3068\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8ca0\u8377\u306e\u8efd\u6e1b\u3068\u30b5\u30a4\u30c8\u306e\u5fdc\u7b54\u901f\u5ea6\u5411\u4e0a\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/p>\r\n<p>APCu\uff08Alternative PHP Cache user\uff09\u306fPHP\u306e\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u3072\u3068\u3064\u3067\u3001\u591a\u304f\u306e\u30ec\u30f3\u30bf\u30eb\u30b5\u30fc\u30d0\u30fc\u3067\u6a19\u6e96\u642d\u8f09\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\r\n\r\n<hr class=\"separator mx-auto mt-3r\" \/>\r\n\r\n<h2 class=\"fz-xl\">\u8a2d\u5b9a\u524d\u306e\u78ba\u8a8d\uff1aAPCu\u304c\u4f7f\u3048\u308b\u304b\u8abf\u3079\u308b<\/h2>\r\n<p>\u7ba1\u7406\u753b\u9762\u306e <b class=\"fw-600\">\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9 \u2192 \u30b5\u30a4\u30c8\u30d8\u30eb\u30b9<\/b> \u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u8868\u793a\u304c\u3042\u308c\u3070APCu\u304c\u5229\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\r\n<blockquote>\r\n<p>\u300c\u304a\u4f7f\u3044\u306e\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u30b5\u30fc\u30d3\u30b9\u3067\u306f\u3001\u6b21\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u30b5\u30fc\u30d3\u30b9\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u3088\u3046\u3067\u3059: APCu, Redis\u3002\u300d<\/p>\r\n<\/blockquote>\r\n<p>\u307e\u305f\u3001<b class=\"fw-600\">\u300c\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u4f7f\u7528\u4e2d\u3067\u3059\u300d<\/b> \u3068\u8868\u793a\u3055\u308c\u3066\u3044\u308c\u3070\u3001\u3059\u3067\u306b\u6709\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\r\n\r\n<picture class=\"bd-bounds my-0.5r\"><img decoding=\"async\" src=\"https:\/\/code-plus.jp\/gp\/wp-content\/uploads\/object-cache_2605221332.png?ver=20260522164904\" alt=\"\" width=\"982\" height=\"488\" class=\"alignnone size-full wp-image-12163\" \/><\/picture>\r\n\r\n<hr class=\"separator mx-auto mt-3r\" \/>\r\n\r\n<h2 class=\"fz-xl\">\u8a2d\u5b9a\u65b9\u6cd5<\/h2>\r\n<h3 class=\"fz-ml\">1. object-cache.php \u3092 wp-content \u306b\u914d\u7f6e\u3059\u308b<\/h3>\r\n<p>WordPress\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u306f\u3001<code>wp-content\/object-cache.php<\/code> \u3092\u7f6e\u304f\u3053\u3068\u3067\u4e0a\u66f8\u304d\u3067\u304d\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092 <code>object-cache.php<\/code> \u3068\u3057\u3066\u4fdd\u5b58\u3057\u3001<code>wp-content\/<\/code> \u76f4\u4e0b\u306b\u914d\u7f6e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\r\n<pre><code class=\"language-php\">&lt;?php\r\n\/**\r\n * WP\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3092APCu\u3067\u4f7f\u7528\u3059\u308b\r\n * \uff08wp-content\u5185\u306eobject-cache.php\u3068\u3057\u3066\u914d\u7f6e\u3059\u308b\uff09\r\n *\/\r\n\r\n\/\/ \u76f4\u63a5\u306e\u30a2\u30af\u30bb\u30b9\u3092\u9632\u3050\r\nif (!defined(&#39;ABSPATH&#39;)) {\r\n  exit;\r\n}\r\n\r\n\/\/ APCu\u304c\u5229\u7528\u3067\u304d\u306a\u3044\u5834\u5408\u306f\u7d42\u4e86\r\nif (!function_exists(&#39;apcu_fetch&#39;)) {\r\n  return;\r\n}\r\n\r\nif (function_exists(&#39;wp_cache_add&#39;)) {\r\n  die(&#39;&lt;strong&gt;ERROR:&lt;\/strong&gt; This is &lt;em&gt;not&lt;\/em&gt; a plugin, and it should not be activated as one.&lt;br \/&gt;&lt;br \/&gt;Instead, &lt;code&gt;&#39; . str_replace($_SERVER&lsqb;&#39;DOCUMENT_ROOT&#39;&rsqb;, &#39;&#39;, __FILE__) . &#39;&lt;\/code&gt; must be moved to &lt;code&gt;&#39; . str_replace($_SERVER&lsqb;&#39;DOCUMENT_ROOT&#39;&rsqb;, &#39;&#39;, trailingslashit(WP_CONTENT_DIR)) . &#39;object-cache.php&lt;\/code&gt;&#39;);\r\n} else {\r\n  \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u95a2\u6570 wp_cache_*() \u3092APCu\u7248\u306b\u7f6e\u304d\u63db\u3048\u308b\r\n  function wp_cache_add($key, $data, $group = &#39;&#39;, $expire = 0) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;add($key, $data, $group, (int) $expire);\r\n  }\r\n  function wp_cache_close() {\r\n    return true;\r\n  }\r\n  function wp_cache_decr($key, $offset = 1, $group = &#39;&#39;) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;decr($key, $offset, $group);\r\n  }\r\n  function wp_cache_delete($key, $group = &#39;&#39;) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;delete($key, $group);\r\n  }\r\n  function wp_cache_flush() {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;flush();\r\n  }\r\n  function wp_cache_get($key, $group = &#39;&#39;, $force = false, &amp;$found = null) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;get($key, $group, $force, $found);\r\n  }\r\n  function wp_cache_incr($key, $offset = 1, $group = &#39;&#39;) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;incr($key, $offset, $group);\r\n  }\r\n  function wp_cache_init() {\r\n    if (function_exists(&#39;apcu_fetch&#39;)) {\r\n      $GLOBALS&lsqb;&#39;wp_object_cache&#39;&rsqb; = new APCu_Object_Cache();\r\n    }\r\n  }\r\n  function wp_cache_replace($key, $data, $group = &#39;&#39;, $expire = 0) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;replace($key, $data, $group, (int) $expire);\r\n  }\r\n  function wp_cache_set($key, $data, $group = &#39;&#39;, $expire = 0) {\r\n    global $wp_object_cache;\r\n    return $wp_object_cache-&gt;set($key, $data, $group, (int) $expire);\r\n  }\r\n  function wp_cache_switch_to_blog($blog_id) {\r\n    global $wp_object_cache;\r\n    $wp_object_cache-&gt;switch_to_blog($blog_id);\r\n  }\r\n  function wp_cache_add_global_groups($groups) {\r\n    global $wp_object_cache;\r\n    $wp_object_cache-&gt;add_global_groups($groups);\r\n  }\r\n  function wp_cache_add_non_persistent_groups($groups) {\r\n    global $wp_object_cache;\r\n    $wp_object_cache-&gt;wp_cache_add_non_persistent_groups($groups);\r\n  }\r\n  function wp_cache_reset() {\r\n    global $wp_object_cache;\r\n    $wp_object_cache-&gt;reset();\r\n  }\r\n\r\n  class APCu_Object_Cache {\r\n    private $prefix = &#39;&#39;;\r\n    private $local_cache = array();\r\n    private $global_groups = array();\r\n    private $non_persistent_groups = array();\r\n    private $multisite = false;\r\n    private $blog_prefix = &#39;&#39;;\r\n\r\n    public function __construct() {\r\n      global $table_prefix, $blog_id;\r\n      $this-&gt;multisite = is_multisite();\r\n      $this-&gt;blog_prefix = $this-&gt;multisite ? intval($blog_id) : &#39;&#39;;\r\n      $this-&gt;prefix = DB_HOST . &#39;.&#39; . DB_NAME . &#39;.&#39; . $table_prefix;\r\n    }\r\n\r\n    private function get_group($group) {\r\n      return empty($group) ? &#39;default&#39; : $group;\r\n    }\r\n\r\n    private function get_key($group, $key) {\r\n      if ($this-&gt;multisite &amp;&amp; !isset($this-&gt;global_groups&lsqb;$group&rsqb;)) {\r\n        return $this-&gt;prefix . &#39;.&#39; . $group . &#39;.&#39; . $this-&gt;blog_prefix . &#39;:&#39; . $key;\r\n      } else {\r\n        return $this-&gt;prefix . &#39;.&#39; . $group . &#39;.&#39; . $key;\r\n      }\r\n    }\r\n\r\n    public function add($key, $data, $group = &#39;default&#39;, $expire = 0) {\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (function_exists(&#39;wp_suspend_cache_addition&#39;) &amp;&amp; wp_suspend_cache_addition()) {\r\n        return false;\r\n      }\r\n      if (isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;)) {\r\n        return false;\r\n      }\r\n      if (!isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;) &amp;&amp; apcu_exists($key)) {\r\n        return false;\r\n      }\r\n      if (is_object($data)) {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = clone $data;\r\n      } else {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = $data;\r\n      }\r\n      if (!isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        return apcu_add($key, $data, (int) $expire);\r\n      }\r\n      return true;\r\n    }\r\n\r\n    public function add_global_groups($groups) {\r\n      if (is_array($groups)) {\r\n        foreach ($groups as $group) {\r\n          $this-&gt;global_groups&lsqb;$group&rsqb; = true;\r\n        }\r\n      } else {\r\n        $this-&gt;global_groups&lsqb;$groups&rsqb; = true;\r\n      }\r\n    }\r\n\r\n    public function wp_cache_add_non_persistent_groups($groups) {\r\n      if (is_array($groups)) {\r\n        foreach ($groups as $group) {\r\n          $this-&gt;non_persistent_groups&lsqb;$group&rsqb; = true;\r\n        }\r\n      } else {\r\n        $this-&gt;non_persistent_groups&lsqb;$groups&rsqb; = true;\r\n      }\r\n    }\r\n\r\n    public function decr($key, $offset = 1, $group = &#39;default&#39;) {\r\n      if ($offset &lt; 0) {\r\n        return $this-&gt;incr($key, abs($offset), $group);\r\n      }\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;) &amp;&amp; $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; - $offset &gt;= 0) {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; -= $offset;\r\n      } else {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = 0;\r\n      }\r\n      if (isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        return $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;;\r\n      } else {\r\n        $value = apcu_dec($key, $offset);\r\n        if ($value &lt; 0) {\r\n          apcu_store($key, 0);\r\n          return 0;\r\n        }\r\n        return $value;\r\n      }\r\n    }\r\n\r\n    public function delete($key, $group = &#39;default&#39;, $force = false) {\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      unset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;);\r\n      if (!isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        return apcu_delete($key);\r\n      }\r\n      return true;\r\n    }\r\n\r\n    public function flush() {\r\n      $this-&gt;local_cache = array();\r\n      apcu_clear_cache();\r\n      return true;\r\n    }\r\n\r\n    public function get($key, $group = &#39;default&#39;, $force = false, &amp;$found = null) {\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (!$force &amp;&amp; isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;)) {\r\n        $found = true;\r\n        if (is_object($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;)) {\r\n          return clone $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;;\r\n        } else {\r\n          return $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;;\r\n        }\r\n      } elseif (isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        $found = false;\r\n        return false;\r\n      } else {\r\n        $value = apcu_fetch($key, $found);\r\n        if ($found) {\r\n          if ($force) {\r\n            $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = $value;\r\n          }\r\n          return $value;\r\n        } else {\r\n          return false;\r\n        }\r\n      }\r\n    }\r\n\r\n    public function incr($key, $offset = 1, $group = &#39;default&#39;) {\r\n      if ($offset &lt; 0) {\r\n        return $this-&gt;decr($key, abs($offset), $group);\r\n      }\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;) &amp;&amp; $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; + $offset &gt;= 0) {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; += $offset;\r\n      } else {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = 0;\r\n      }\r\n      if (isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        return $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;;\r\n      } else {\r\n        $value = apcu_inc($key, $offset);\r\n        if ($value &lt; 0) {\r\n          apcu_store($key, 0);\r\n          return 0;\r\n        }\r\n        return $value;\r\n      }\r\n    }\r\n\r\n    public function replace($key, $data, $group = &#39;default&#39;, $expire = 0) {\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        if (!isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;)) {\r\n          return false;\r\n        }\r\n      } else {\r\n        if (!isset($this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb;) &amp;&amp; !apcu_exists($key)) {\r\n          return false;\r\n        }\r\n        apcu_store($key, $data, (int) $expire);\r\n      }\r\n      if (is_object($data)) {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = clone $data;\r\n      } else {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = $data;\r\n      }\r\n      return true;\r\n    }\r\n\r\n    public function reset() {\r\n      $this-&gt;flush();\r\n    }\r\n\r\n    public function set($key, $data, $group = &#39;default&#39;, $expire = 0) {\r\n      $group = $this-&gt;get_group($group);\r\n      $key = $this-&gt;get_key($group, $key);\r\n      if (is_object($data)) {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = clone $data;\r\n      } else {\r\n        $this-&gt;local_cache&lsqb;$group&rsqb;&lsqb;$key&rsqb; = $data;\r\n      }\r\n      if (!isset($this-&gt;non_persistent_groups&lsqb;$group&rsqb;)) {\r\n        return apcu_store($key, $data, (int) $expire);\r\n      }\r\n      return true;\r\n    }\r\n\r\n    public function stats() {\r\n      echo &#39;&#39;;\r\n    }\r\n\r\n    public function switch_to_blog($blog_id) {\r\n      $this-&gt;blog_prefix = $this-&gt;multisite ? intval($blog_id) : &#39;&#39;;\r\n    }\r\n  }\r\n}\r\n<\/code><\/pre>\r\n<h3 class=\"fz-ml\">2. functions.php \u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3059\u308b<\/h3>\r\n<p>\u8a18\u4e8b\u306e\u6295\u7a3f\u30fb\u66f4\u65b0\u3084\u30e1\u30cb\u30e5\u30fc\u5909\u66f4\u306e\u305f\u3073\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u30af\u30ea\u30a2\u3059\u308b\u51e6\u7406\u3092 <code>functions.php<\/code> \u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002\u904e\u5ea6\u306a\u30af\u30ea\u30a2\u3092\u9632\u3050\u305f\u3081\u306b\u30a4\u30f3\u30bf\u30fc\u30d0\u30eb\u3092\u8a2d\u3051\u3066\u3044\u307e\u3059\u3002<\/p>\r\n<pre><code class=\"language-php\">\/* \u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\r\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u0f1a\u0f36\u22b0\u27e1\u22b1\u0f36\u0f1a\u0f3a *\/\r\n\/\/ \u6700\u5f8c\u306e\u30af\u30ea\u30a2\u304b\u3089\u4e00\u5b9a\u6642\u9593\u7d4c\u904e\u5f8c\u306b\u30af\u30ea\u30a2\u3059\u308b\u3088\u3046\u306b\uff08\u904e\u5ea6\u306e\u30af\u30ea\u30a2\u9632\u6b62\uff09\r\ndefine(&#39;CACHE_CLEAR_INTERVAL&#39;, 5); \/\/ 5\u79d2\r\n\r\nfunction should_clear_cache() {\r\n  $last_cleared = get_option(&#39;last_cache_cleared_time&#39;, 0);\r\n  return time() - $last_cleared &gt; CACHE_CLEAR_INTERVAL;\r\n}\r\n\r\n\/\/ APCu\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\u95a2\u6570\r\nfunction clear_apcu_cache() {\r\n  if (function_exists(&#39;apcu_clear_cache&#39;)) {\r\n    apcu_clear_cache();\r\n  } elseif (function_exists(&#39;apc_clear_cache&#39;)) {\r\n    apc_clear_cache();\r\n  }\r\n  update_option(&#39;last_cache_cleared_time&#39;, time());\r\n}\r\n\r\n\/\/ \u8a18\u4e8b\u6295\u7a3f\u30fb\u66f4\u65b0\u6642\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\r\nfunction my_save_post($post_id, $post, $update) {\r\n  if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) {\r\n    return;\r\n  }\r\n  if (should_clear_cache()) {\r\n    clear_apcu_cache();\r\n  }\r\n}\r\nadd_action(&#39;save_post&#39;, &#39;my_save_post&#39;, 10, 3);\r\n\r\n\/\/ \u30e1\u30cb\u30e5\u30fc\u66f4\u65b0\u6642\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\r\nfunction clear_cache_on_menu_update($menu_id, $menu_data) {\r\n  if (should_clear_cache()) {\r\n    clear_apcu_cache();\r\n  }\r\n}\r\nadd_action(&#39;wp_update_nav_menu&#39;, &#39;clear_cache_on_menu_update&#39;, 10, 2);\r\n\r\n\/\/ \u30ab\u30b9\u30bf\u30de\u30a4\u30b6\u66f4\u65b0\u6642\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u30af\u30ea\u30a2\r\nfunction clear_cache_on_customize_save($wp_customize) {\r\n  if (should_clear_cache()) {\r\n    clear_apcu_cache();\r\n  }\r\n}\r\nadd_action(&#39;customize_save_after&#39;, &#39;clear_cache_on_customize_save&#39;);\r\n<\/code><\/pre>\r\n\r\n<hr class=\"separator mx-auto mt-3r\" \/>\r\n\r\n<h2 class=\"fz-xl\">\u6709\u52b9\u5316\u306e\u78ba\u8a8d<\/h2>\r\n<p>\u8a2d\u5b9a\u5f8c\u3001\u7ba1\u7406\u753b\u9762\u306e <b class=\"fw-600\">\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9 \u2192 \u30b5\u30a4\u30c8\u30d8\u30eb\u30b9<\/b> \u3092\u958b\u304d\u3001\u300c<b class=\"fw-600\">\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u4f7f\u7528\u4e2d\u3067\u3059<\/b>\u300d\u3068\u8868\u793a\u3055\u308c\u3066\u3044\u308c\u3070\u6709\u52b9\u5316\u5b8c\u4e86\u3067\u3059\u3002<\/p>\r\n<p>Query Monitor \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u3046\u3068\u3001Object Cache \u306e\u6b04\u306b\u300c88% hit rate\u300d\u306e\u3088\u3046\u306a\u30d2\u30c3\u30c8\u7387\u304c\u8868\u793a\u3055\u308c\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u52b9\u3044\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\r\n\r\n<hr class=\"separator mx-auto mt-3r\" \/>\r\n\r\n<h2 class=\"fz-xl\">\u307e\u3068\u3081<\/h2>\r\n<p>\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\u306e\u8a2d\u5b9a\u306f\u3001<code>object-cache.php<\/code> \u306e\u914d\u7f6e\u3068 <code>functions.php<\/code> \u3078\u306e\u30af\u30ea\u30a2\u51e6\u7406\u306e\u8ffd\u52a0\u3060\u3051\u3067\u5b8c\u4e86\u3057\u307e\u3059\u3002\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u6e1b\u308a\u3001\u30da\u30fc\u30b8\u751f\u6210\u6642\u9593\u306e\u77ed\u7e2e\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/p>\r\n<p>\u30b5\u30a4\u30c8\u30d8\u30eb\u30b9\u3067\u300cAPCu\u300d\u307e\u305f\u306f\u300cRedis\u300d\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u3068\u8868\u793a\u3055\u308c\u3066\u3044\u308b\u30b5\u30fc\u30d0\u30fc\u3067\u3042\u308c\u3070\u3001\u4eca\u65e5\u304b\u3089\u3067\u3082\u8a66\u305b\u308b\u6539\u5584\u7b56\u3067\u3059\u3002<\/p>","protected":false},"excerpt":{"rendered":"WordPress\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u306b\u6709\u52b9\u306a\u6c38\u7d9a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\uff08APCu\uff09\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3092\u89e3\u8aac\u3002object-cache.php \u306e\u914d\u7f6e\u304b\u3089\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\u8a2d\u5b9a\u307e\u3067\u3001\u30b3\u30fc\u30c9\u4ed8\u304d\u3067\u624b\u9806\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","footnotes":"","vk-ltc-link":"","vk-ltc-target":"0"},"categories":[13],"tags":[],"group":[],"class_list":["post-5356","post","type-post","status-publish","format-standard","category-wordpress"],"acf":[],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/posts\/5356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/comments?post=5356"}],"version-history":[{"count":3,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/posts\/5356\/revisions"}],"predecessor-version":[{"id":12166,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/posts\/5356\/revisions\/12166"}],"wp:attachment":[{"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/media?parent=5356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/categories?post=5356"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/tags?post=5356"},{"taxonomy":"group","embeddable":true,"href":"https:\/\/code-plus.jp\/gp\/wp-json\/wp\/v2\/group?post=5356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}