修改WordPress登录页面,然后引用它时出现短码问题

时间:2016-05-16 作者:Jim Factor

这两个部分分别工作得很好。我用以下代码创建了登录表单的快捷码:

//register new shortcode
add_action( \'init\', \'my_add_shortcodes\' );

function my_add_shortcodes() {

    add_shortcode( \'my-login-form\', \'my_login_form_shortcode\' );
}



// login shortform code
function my_login_form_shortcode() {

    if ( is_user_logged_in() )
        return \'\';
    return $form_html . wp_login_form( array( 
        \'echo\' => false,
        \'form_id\' => \'loginform\',
        ) 
    ); 
}
并修改登录表单以在其上添加额外注释:

add_action( \'login_form\', \'login_extra_note\', 1 );

function login_extra_note() {

    //Adding the text

?>
<p>You can type a little note to those logging in here.</p>

<?php
}
/wp登录。php页面显示额外的注释。快捷码显示登录表单。

But 快捷码[我的登录表单]显示默认登录表单,而不是带有注释的更新表单。

谢谢你的帮助!

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

wp_login_form 完全独立于wp-login.php - 这个login_form 挂钩仅适用于后者。

对于前者,您可以使用三个过滤器:

  1. login_form_top - 在打开后立即返回要注入的HTML<form /> 标签login_form_middle - 返回要在密码字段和记住我/提交字段之间插入的HTMLlogin_form_bottom - 在关闭之前返回要注入的HTML</form>