未定义的索引:使用代码段执行操作以更改寄存器页

时间:2018-09-16 作者:kibus90

我看到这个错误

Notice: Undefined index: action in /home/olexywro/public_html/wp-content/plugins/code-snippets/php/snippet-ops.php(352) : eval()\'d code on line 6

在我的登录页面中,包含以下代码片段:

// Redirect Registration Page
function my_registration_page_redirect()
{
    global $pagenow;

    if ( ( strtolower($pagenow) == \'wp-login.php\') && ( strtolower( $_GET[\'action\']) == \'register\' ) ) {
        wp_redirect( home_url(\'/zarejestruj-sie/\'));
    }
}
add_filter( \'init\', \'my_registration_page_redirect\' );
谁能告诉我为什么?

此代码的第6行:

if ( ( strtolower($pagenow) == \'wp-login.php\') && ( strtolower( $_GET[\'action\']) == \'register\' ) ) {

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

您正在这样做:

strtolower( $_GET[\'action\'])
但你没有检查$_GET[\'action\'] 首先存在。您不能指望它被设置,因为当您访问wp登录时。php,它没有?action= 但这个钩子仍然会激发。

所以您需要添加isset( $_GET[\'action\'] ) 根据您的情况:

if ( 
    strtolower($pagenow) == \'wp-login.php\' &&
    isset( $_GET[\'action\'] ) &&
    strtolower( $_GET[\'action\'] ) == \'register\'
) {

}

结束

相关推荐

对WooCommerce的Functions.php更改不起作用

我正在尝试将其添加到函数中。php。在我的另一个站点上的测试实验室中,它可以很好地添加测试信息。但在这个网站上,我试图把它添加到什么都没有发生的情况下。该网站正在使用最新的woocommerce运行一个建筑节俭主题。有什么想法吗?我基本上只是想在每个产品页面上添加一行类似于免责声明但无法添加的文本。add_action(\'woocommerce_before_add_to_cart_form\',\'print_something_below_short_description\');