SuperCacheFeature, SuperCacheCompatibility (LockOnFailure, getestet 3.1.5, Version aus dem Plugin-Header) und SuperCacheIntegration ohne Tools. Der SuperCacheListener sammelt Änderungen über lit_mcp_changed und leert einmal am Request-Ende: einen Beitrag per wp_cache_post_edit, mehrere Beiträge oder seitenweite Änderungen per wp_cache_clear_cache (Multisite: eigener Blog). Komplett-Purges höchstens alle 30 s, mit genau einem Nachlauf per WP-Cron. Freigabe-Einträge leeren nichts. Uninstaller räumt Optionen, Transient und Cron-Hook ab; Reiter und lit-site-status zeigen das Profil automatisch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
38 lines
921 B
PHP
38 lines
921 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace LIT\MCP\Integrations\SuperCache;
|
|
|
|
use LIT\MCP\Compatibility\Capability;
|
|
|
|
defined('ABSPATH') || exit;
|
|
|
|
// The installed PHPCompatibility sniffs predate enums (PHP 8.1) and read their methods as plain functions.
|
|
// phpcs:disable PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext
|
|
|
|
/** What the plugin does to WP Super Cache: empty its cache for one post or entirely. */
|
|
enum SuperCacheFeature: string implements Capability
|
|
{
|
|
case PurgePost = 'wpsc-purge-post';
|
|
case PurgeAll = 'wpsc-purge-all';
|
|
|
|
public function id(): string
|
|
{
|
|
return $this->value;
|
|
}
|
|
|
|
public function label(): string
|
|
{
|
|
return match ($this) {
|
|
self::PurgePost => 'Cache eines Beitrags leeren',
|
|
self::PurgeAll => 'Gesamten Cache leeren',
|
|
};
|
|
}
|
|
|
|
public function isWrite(): bool
|
|
{
|
|
return true;
|
|
}
|
|
}
|