在主页上导致404的URL参数,但在其他地方没有

时间:2013-12-19 作者:GBleaney

我正在编写一个利用URL参数的插件。出于某种原因,将这些参数之一添加到我的网站主页会导致404(http://bleaney.ca/?source=asdf). 但是,将参数添加到任何其他页面不会导致404(http://bleaney.ca/work-experience-2/?source=asdf). 这个404问题是在我向Wordpress注册参数后才出现的:

add_filter(\'query_vars\', \'register_visitor_identifier_query_vars\' );
function register_visitor_identifier_query_vars( $qvars ) {
    $qvars[] = \'source\';
    return $qvars;
}
在404页面上,URL参数仍由此代码检测,由于某些原因,页面本身仅为404:

if (isset($wp_query->query_vars[\'source\'])) {
    echo $wp_query->query_vars[\'source\'];
}
你知道是什么原因造成的吗?我该如何解决?我认为,只需将主页设置为具有更长的ULR(如工作经验链接)的解决方法就可以了,但如果可能的话,我宁愿解决这个问题,而不是解决它。

1 个回复
SO网友:Marc

我也有同样的问题。我发现问题是因为我将首页设置为显示首页的静态页面和帖子页面的静态页面。(在阅读设置中设置)

enter image description here

然而,我的帖子页面已被删除。在这种情况下,因为我们决定不再有帖子页面。URL变量试图将主页视图切换到不存在的帖子页面。

我通过更新模板来修复此问题front-page.php (而不是页面模板)并更改了设置,使首页显示Your latest posts.

enter image description here

这个解决方案对我有效,因为我不需要posts页面。

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/