web-dev-qa-db-ja.com

出力前にカスタムクッキーを設定する方法

Phpヘッダが送信される前にクッキーをチェック/設定する確実な方法は何ですか? setcookie()関数をフックするのに最適な場所となるアクションまたはフィルタはありますか?

4
Dan Gayle

WordPressのユーザー認証と照合する必要があるかどうかによって異なります。ログインしているユーザーかどうかを知る必要がある場合は、'init'にフックしてください。そうでなければ、早ければ早いほど良いです。

すべてのページが読み込まれるたびに起動し、Cookieの存在を確認するだけで、WPのAPIを利用する必要がない場合は、それを起動するために0000a.phpというカスタムMUプラグインに配置しますコア以外のファイルが誤ってヘッダーを送信する可能性があります。

3
John P Bloch

私はfunctions.phpはどんな出力の前にも確実に処理され、拡張のための場所にふさわしいと思います。

Hookに関しては、おそらくafter_setup_theme、それはその直後に来る。

2
Rarst

あなたは、クッキーをチェックまたは設定するための関数を作成することができますが、あなたがリダイレクトを使用する場合、ファイルはリダイレクトのindex.phpの直前にアクセスされるので、あなたはwp-config.phpをチェックしなければなりません。

これはMark Jaquithが Age Verification と書いたプラグインからのものです。これはユーザーがサイトに入る前に年齢確認フォームに記入することを要求します。私はそれを 酒、ビール、白いサイト用に修正しました 私はしました。

if ( !defined( 'ABSPATH' ) ) { // we're being called directly, to check the cookie
     if ( file_exists('../../wp-config.php') )
                  include('../../wp-config.php');
     elseif ( file_exists('../../../wp-config.php') )
               include('../../../wp-config.php');
    else
       die('Could not find wp-config.php');

もっと良い方法が今あるかもしれません。プラグインは1年以上前に書かれました。

0
Chris_O