私は自分のサイトのフロントエンドにあるフォームを持っています。 [Remember me]チェックボックスを削除しようとしていますが、これを機能させることができません。これが私のフォームコードです。
<?php
$args = array(
'echo' => true,
'remember' => true,
'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'],
'form_id' => 'loginform',
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'value_username' => '',
'value_remember' => false
);
wp_login_form( $args );
?>
私はこのコードを試したことがありますが、これはwp-adminフォーム用であると思います(そして私のフォームではうまくいきません)。
add_action('login_head', 'do_not_remember_me');
function do_not_remember_me()
{
echo '<style type="text/css">.forgetmenot { display:none; }</style>';
}
これを適切に行う方法について何かアイデアはありますか?
wp_login_form()
にはremember
引数があります。 falseに設定するだけです。
$args = array(
'remember' => false,
);
wp_login_form( $args );
生成したページコードを調べて(またはInspect要素を使用して)、ブロックしたい領域にどのCSSクラスが割り当てられているかを確認します。次に、そのCSSコードをテーマの追加のCSSに追加します。
CSSクラスが「rememberme」の場合、
.rememberme {display:none !important;}
テーマの追加CSS(カスタマイザ経由)では、そのブロックを非表示にする必要があります。
追加
次のようにlogin_form_defaultsフィルタを調べます。
add_filter('login_form_defaults', $args);
あなたの$ argsを使う。これはwp_login_form()
関数のデフォルト引数を設定することになっています。
...そしてwp_login_formによって使用されるクラスは https://core.trac.wordpress.org/browser/tags/4.9.6/src/wp-includes/general-template.php#の470行目についてのlogin-remember
です。 L0 コアコード(コアコードを見ることは常に役に立ちます...)
** 追加 **
まあ、上記のコードは正しくありません。ドキュメントによると、これは動作するはずです。
add_filter( 'login_form_defaults', 'wp_disable_remember_me',10,1);
function wp_disable_remember_me($args ) {
$args['value_remember'] = false;
$args['remember']= false;
return $args;
}
....でもそうではありません。理由がわからない。いくつかのサイト/テーマでそれをテストしました。
したがって、おそらくCSSの「非表示」ソリューションが唯一の選択肢です。