猿问

WP v-5.5 $_GET 参数在我的插件中不起作用

我开发了一个wordpress插件。在我的插件中,我通过获取参数来管理所有页面,例如(http://example.com/client-portal/?page=dashboard),它一直工作到 WordPress 版本 5.4


但新版本的 WordPress 5.5 版会自动重定向http://example.com/client-portal/?page=dashboard到http://example.com/client-portal/. 获取参数自动消失。


我通过这种方式添加了短代码 -


//page short code for user page

add_shortcode( 'ccgclient_portal', array($this,'ccgclient_portal_shortcode_func') );

这是我的简码功能 -


function ccgclient_portal_shortcode_func()

{

    ob_start();

    include_once 'pages/user/index.php';

    return ob_get_clean();

}

并通过 - 获取参数


if(isset($_GET['page']) && $_GET['page'] == 'dashboard'){

     include_once 'dashboard.php';

}

不知道新版本的wordpress(5.5)有什么问题。


请问你能帮我吗?


提前致谢。


慕标琳琳
浏览 105回答 2
2回答

不负相思意

我相信您的问题与“页面”键有关,这是一个帖子类型的标题,它与此版本中的 WP 产生冲突。这与配置永久链接以使用“?post=98979”或类似格式相同。我的建议是尝试使用不同的获取密钥,看看会发生什么。让我知道你得到了什么。

慕仙森

我的插件也有同样的问题。我的问题不是使用新密钥。我的客户在这里定义了“页面”。这是关于世界各地所有旧链接的。我的情况是这样解决的:add_action( 'parse_request', 'ai_parse_request', 1);并在function ai_parse_request( $query ) {     unset( $query->query_vars['page']);     return $query;}我从 $query 中删除了“page”参数以避免 301 重定向。我已经使这个“解决方法”可配置,因为页面参数实际上用于博客中的分页。在您的情况下,您应该仅在参数不是数字时应用此选项,以确保您不会破坏全局分页!
随时随地看视频慕课网APP
我要回答