私はサードパーティのサービスによって管理されるログインを持つワードプレスサイトを持っています。このサービスによってユーザーがログインすると、Cookieが設定されます。クッキーが設定されているときにWPスーパーキャッシュを無効にする
ユーザーがログインしているとき(Cookieセット)、WPスーパーキャッシュを使用してページをキャッシュしないようにします。 define( 'DONOTCACHEPAGE'、TRUE)を使うことができます。サードパーティのクッキーが設定されている場合、これをどのように早期に(できればfunctions.phpで)設定するのですか?
私は 'init'フックを試しましたが、これはキャッシュされたページでは呼び出されません(これは.htmlから直接ロードされたものと仮定しています)。
function disable_super_cache() {
die("Cookie Logic");
//define(‘DONOTCACHEPAGE’, TRUE);
}
add_action('init', 'disable_super_cache', 9999);
これをどのように早期に設定すればよいですか?
UPDATE
私は私が間違って角度からこれを見ていたが実現。できるだけ早く設定する必要があるため、定数をアクションとして設定する必要はありません。 wp-config.php(スーパー・キャッシュはroot functions.phpのロジックよりも前に呼ばれています)では、私が現時点で最もよく働いている作業は次のとおりです。しかし、これは大規模な回避策のように思える、より良い提案が歓迎されるだろう。
/**
* Disable WP Super Cache when a user is logged in
*/
if(isset($_COOKIE['LoggedInCookie'])){
$_GET['donotcachepage'] = '{secret}';
//define('DONOTCACHEPAGE', 1) // Doesn't stop caching even in wp-config.php, bug in WP-Super-Cache??;
}
APIを使い、まだすべてのアクションを確認しましたか? https://codex.wordpress.org/Plugin_API/Action_Reference –
@PeterFeatherstoneええ私はちょうど 'init'と運の上にそれらのすべてを試しました。私はしようとする可能性があると思う 'wp-cache-config.php'関数を追加する編集... – alexmcfarlane