我正在定制登录表单,使其更像谷歌的极简表单,它没有表单标签,而是依赖占位符提示用户输入字段。表单开始时如下所示:
<p>
<label for="user_login">Username<br />
<input type="text" name="log" id="user_login" class="input" value="" size="20" /></label>
</p>
WordPress没有在登录中插入占位符的方法,但我找到了一个简单的jQuery解决方案
here.
当您以自己的形式调用WordPress登录时,可以传递值以覆盖默认值,如中所述Codex. 在参数中放置空值将删除相关标签,例如:
<?php
$args = array(
\'label_username\' => __( \'\' ),
\'label_password\' => __( \'\' ),
\'label_log_in\' => __( \'Sign In\' ),
);
?>
<?php wp_login_form( $args ); ?>
此用法将彻底删除标签
and the <br /> tag 下面是标签,所以看起来像这样:
<p class="login-username">
<label for="user_login"></label>
<input type="text" name="log" id="user_login" class="input" value="" size="20" />
</p>
然而,WordPress的默认登录页面值(例如/wp login.php处的页面)似乎无法修改,因为它不是由您自己的函数调用的。
我找到了一种方法,可以用堆栈用户提供的默认形式更改标签here. 可以修改此方法以删除标签,就像我所做的那样:
function empty_login_labels() {
add_filter( \'gettext\', \'username_change\', 20, 3 );
function username_change( $translated_text, $text, $domain )
{
if (preg_match("/Username|Password/", $text)) {
$translated_text = \'\';
}
return $translated_text;
}
}
add_action( \'login_head\', \'empty_login_labels\' );
不幸的是,可能是因为过滤器在流程的后期应用,WordPress已经添加了
<br /> 标签(现在为空)后的标签:
<p>
<label for="user_login"><br />
<input type="text" name="log" id="user_login" class="input" value="" size="20" /></label>
</p>
注意-我刚刚注意到WordPress对这两种表单的格式略有不同-默认表单中的标签包含输入字段,而在用户调用的函数中(
wp_login_form()) 标签容器在输入字段之前关闭。可能与此问题没有密切关系,但将解释代码片段看起来不同的原因
我可以在额外的<br> 用CSS标记,但这是有问题的。有没有办法去掉这个<br /> 标记,或者至少在其中添加一个标识符,以便使用css对其进行深度处理?