1

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

但是新版 wordpress 5.5 版中会自动重定向http://example.com/client-portal/?page=dashboardhttp://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)有什么问题。

请问你能帮我吗?

提前致谢。

4

2 回答 2

1

我相信您的问题在于“页面”键,这是一个帖子类型的 slug,它在此版本中与 WP 产生冲突。这与将永久链接配置为使用 '?post=98979' 或类似格式相同。我的建议是尝试使用不同的获取密钥,看看会发生什么。

让我知道你得到了什么。

于 2020-08-13T08:29:45.903 回答
0

我的插件也有同样的问题。我的问题是没有使用新密钥。我的客户在这里定义了“页面”。它是关于世界上所有的旧链接。

我的情况是这样解决的:

add_action( 'parse_request', 'ai_parse_request', 1);

并且在

function ai_parse_request( $query ) { 
    unset( $query->query_vars['page']); 
    return $query;
}

我从 $query 中删除了“page”参数以避免 301 重定向。

我已经使这个“解决方法”可配置,因为页面参数实际上用于博客中的分页。在您的情况下,您应该仅在例如参数不是数字时应用此选项,以确保您不会在全局范围内破坏分页!

于 2020-08-20T17:12:44.947 回答