web-dev-qa-db-ja.com

ユーザーの最初の訪問を検出する方法

私のWordPressブログにアクセスしたユーザーに対してアラートを作成したいです。誰かがブログを訪れたかどうかを検出するためのis_home()のような条件付き関数はありますか 初めて どのサイトに入ったとしても、すべての新しいユーザーに警告を送りたいのです。

2
Pete St.

いいえ、そのようなコアには何もありません。

あなたはクッキーを設定してそれを簡単にすることができます(警告:未テストのコードが続きます)。

<?php
function is_first_time()
{
    if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
        return false;
    }

    $domain = COOKIE_DOMAIN ? COOKIE_DOMAIN : $_SERVER['HTTP_Host'];

    // expires in 30 days.
    setcookie('_wp_first_time', '1', time() + (WEEK_IN_SECONDS * 4), '/', $domain);

    return true;
}

if (is_first_time()) {
     // it's the user's first time, do stuff!
}

出力バッファリングがオンになっていることを確認するか、Cookieが設定されていることを確認するために何かが画面に送信される前にそれを使用してください。

5
chrisguitarguy

Chrisguitarguyから少し修正しました。 functions.phpファイルに配置し、フックを介してテーマテンプレートなどで条件付きを使用します

function is_first_time() {
    if (isset($_COOKIE['_wp_first_time']) || is_user_logged_in()) {
        return false;
    } else {
        // expires in 30 days.
        setcookie('_wp_first_time', 1, time() + (WEEK_IN_SECONDS * 4), COOKIEPATH, COOKIE_DOMAIN, false);

        return true;
    }
}
add_action( 'init', 'is_first_time');
1
Kegan Quimby