そのために次の関数を使用して、ワードプレスユーザーにプログラムでログインしようとしています。
public function auto_login( $user ) {
$username = $user;
if ( !is_user_logged_in() ) {
$user = get_user_by( 'login', $username );
wp_set_current_user( $user->ID, $user->user_login );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login );
}
}
残念ながらそれは機能していないようです。その関数はショートコード内から呼び出されます。これは説明でしょうか。何らかのコンテンツが出力される前に、関数を何らかのフィルタにフックするべきですか?また、$ _ GETパラメータに基づいて、新しくログインしたユーザーを特定の投稿にリダイレクトしたいのですが、関数の最後にヘッダーリダイレクトを追加するだけでいいのですか。
ご協力ありがとうございます。
これをtemplate_redirectフックで行います。ブログ内の別のページにリダイレクトするには、wp_safe_redirectを使用できます。私はあなたにコードを与えることができません。
それは私のために働いているので、あなたはこの機能を試すことができます
function custom_login() {
$creds = array();
$creds['user_login'] = 'example';
$creds['user_password'] = 'plaintextpw';
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
}
// run it before the headers and cookies are sent
add_action( 'after_setup_theme', 'custom_login' );
詳しくは 公式サイト hereをご覧ください。