拦截某个页面的加载

时间:2021-06-07 作者:Razzupaltuff

根据是否在我的网站上启用了用户注册,我希望阻止加载我的自定义登录表单,并显示一个弹出窗口,而不是告诉用户注册已禁用。

我试图通过Wordpress抄本找到我的方法,但它相当大,所以我没有找到我要找的东西。

这段代码会是什么样子,可以满足我的需求,或者Wordpress的钩子和让Wordpress加载我的弹出窗口而不是登录页面的正确方式是什么?

1 个回复
SO网友:jdm2112

一种方法是使用template_redirect 在呈现登录页面之前执行操作并测试用户状态。根据用户状态,您可以重定向到另一个页面,而不是加载原始页面内容。

function wpse_is_user_good_enough() {
    if ( ! is_page( \'your-login-page-slug-here\' ) ) {
        return;  // Not the login page so return early
    }

    // The login page is loading. Ck user status here and bounce them or send them along
}
add_action( \'template_redirect\', \'wpse_is_user_good_enough\' );
上面的示例将wpse\\u is\\u user\\u good\\u ough函数挂接到template\\u重定向操作。如果这是您希望拦截的页面,请立即进行测试;否则返回。

如果您有一个专门用于登录页面的PHP模板,那么可以在页面模板上嵌入用户状态测试,并跳过其余部分。使用页面模板可以显示其他内容,而不是重定向未经授权的用户。

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private