web-dev-qa-db-ja.com

初めてのユーザーのために別のページを表示する

私の必要条件に従って私は私のサイトを訪問するユーザーのためにfirstpage.phpと言うfirst timeを見せる必要がありますさもなければホームページを見せるべきですhomepage.php

私はこの両方のページをpage-templatesとして作成しました

これまでのところ、私は以下のコードを使用してクッキーを使用して設定することができました

if (!isset($_COOKIE['visited'])) { // no cookie, so probably the first time here
        setcookie ('visited', 'yes', time() + 3600); // set visited cookie

        header("Location: index.php");
        exit(); // always use exit after redirect to prevent further loading of the page
    }
else{ 
         header("Location: index.php/first-page/");
    }

上記のコードを使用すると、必要なURLにリダイレクトされず、エラーが発生します。

ページが正しくリダイレ​​クトされていません

1
dh47

要件を取得するために プラグイン を見つけました。これはcookiesを使用して管理され、私の場合はWelcome URL A.K.A firstpageを提供する必要があり、2回目にリダイレクトするページを選択する必要があります。

0
dh47

テーマfunctions.phpに以下のコードを入れてください: -

add_action('template_redirect','wdm_redirect');
function wdm_redirect(){
$ip = $_SERVER['REMOTE_ADDR'];
$value = get_option($ip);

     if ($value == '') {                 
                update_option($ip,1);
                        wp_redirect(site_url('first-page'));
                        exit(); // always use exit after redirect to prevent further loading of the page
      } 

}
0
WisdmLabs

初めての訪問者のためのあなたの条件付きで template_include を使ってください:

add_filter( 'template_include', 'first_time_visitor_template', 99 );

function first_time_visitor_template( $template ) {

    if ( // your conditional for first time visitor {
        $new_template = locate_template( array( 'first-time-template.php' ) );
        if ( '' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}

template_redirectを使用しないでください

あなたは どの解決策が初めての訪問者に対してうまくいくかをテストする必要があります

0
Brad Dalton