php - 通过 php 登录重定向函数将变量从 URL 传递到 wp-login 表单输入

标签 php javascript wordpress

这很有趣,但只有天才才能弄清楚这一点。这是一个奇怪的事情。

需要一点 JavaScript 并对我现有的 php wordpress 功能进行一些调整。

我有一个 wp 网站,使用此功能对公众锁定...

add_action('get_header', 'wpq_member_only_site');
function wpq_member_only_site() {

    if ( !is_user_logged_in() ) {

        $redirect_after_login = get_home_url();

        $login_url = wp_login_url( $redirect_after_login );

        wp_redirect( $login_url, 302 );
        exit;
    }

}

...将未登录的用户重定向到登录表单。

我的问题是,我想使用这样的 URL 变量...

http://example.com?user=media&password=23747

...不知何故,(我猜)将其通过函数传递到登录页面 URL...

http://example.com/wp-login.php?redirect_to=http%3A%2F%2Fexample.com&user=media&password=23747

...这样我的 login_head 中的脚本就可以使用,并自动预填充登录表单。

我将使用此函数将脚本插入我的login_head...

function my_login_head() {
  echo '

      <!-- script here -->
  ';
}
add_action('login_head', 'my_login_head');

有人认为他们可以帮助我吗?或者知道是否可能。

我的想法是,这样我就可以使用此 URL 为人们提供访问权限,而无需他们知道用户名或密码。

任何想法或帮助都会很棒,谢谢!

最佳答案

对于这样的网址...

http://example.com/wp-login.php?ul=media&up=5434535

function my_login_head() {
        if(isset($_GET['ul'])&& isset($_GET['up'])){
                $ul=esc_attr($_GET['ul']);
                $up=esc_attr($_GET['up']);
                echo '<script>
                        window.onload = function() {
                                var ul=document.getElementById("user_login");
                                ul.value = "'.$ul.'";
                                var up=document.getElementById("user_pass");
                                up.value = "'.$up.'";
                        }
                </script>';
        }
}
add_action('login_head', 'my_login_head');


如果您想使用如下网址:

http://example.com/?ul=media&up=5434535

要将非成员(member)重定向到预先填写的登录表单,您可以使用原始“wpq_member_only_site”函数的修改版本:

add_action('get_header', 'wpq_member_only_site');
function wpq_member_only_site() {
        if ( !is_user_logged_in() ) {
                $redirect_after_login = get_home_url();
                $autofill="";
                if(isset($_GET['ul']) && isset($_GET['up'])){
                        $ul=esc_attr($_GET['ul']);
                        $up=esc_attr($_GET['up']);
                        $autofill="&ul=".$ul."&up=".$up;
                }
                $login_url = wp_login_url( $redirect_after_login ).$autofill;
                wp_redirect( $login_url, 302 );
                exit;
        }
}

关于php - 通过 php 登录重定向函数将变量从 URL 传递到 wp-login 表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13279611/

相关文章:

javascript - Jquery cookie,适用于背景颜色但不适用于 Logo 图像

mysql - 基于具有自连接的另一个列值按值排序

css - 如何在wordpress中覆盖css样式

php - 为什么这个 jquery 脚本不起作用?

javascript - D3.js - 具有多个环和动画过渡的圆环图

html - 是否可以在一行中调用样式表上外部 div 中的内部 div?

php - 使用 PHP、JavaScript 解析位于另一台服务器上的 CSV

java - 如何为异步微服务创建验收测试

php - 如何在 Edit.php 页面上编辑后更新 Index.php 页面上的数据库值

php - 如何修改Joomla文章的布局?