WordPress每页的总发帖数已更改,现在出现404个http错误

时间:2011-08-12 作者:KodeFor.Me

我已经将我的网站从Joomla迁移到WordPress。一切都很好,我已经在htaccess中创建了我的重写,以阻止404来自旧URL,但我在分页方面有问题。

在Joomla网站上,我每页有6篇帖子,但现在在WordPress中,我需要每页显示10篇帖子。那也很好。

问题是,在WordPress站点中,由于我现在使用的每页10篇帖子,最后一页返回404错误。

i、 e.:在Joomla,要想得到第60篇文章,我必须在第10页,但现在第10页已经不存在了,因为在WordPress中,现在最后一页是第6页。在这种情况下,我将尝试访问第7、第8、第9或第10页,因为我收到404 HTTP错误。

我怎样才能解决这个问题?

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

要真正知道它是否会是404,唯一的方法是让WordPress尝试加载它并在WP发送标题之前检查结果。

如果你把这个放在你的函数里。php(not on a live site! use a dev mirror.), 然后访问抛出404的页面,您可以看到$wp_query 生成的对象,is_404 都是真的。通过检查,您可以确定要执行的操作。

add_filter(\'template_redirect\', \'wpse25745_inspect_query\' );
function wpse25745_inspect_query() {
    global $wp_query;

    echo \'<pre>\';
    print_r($wp_query);
    echo \'</pre>\';
    die();

}
接下来,您可以重定向到如下位置:

add_filter(\'template_redirect\', \'wpse25745_inspect_query\' );
function wpse25745_inspect_query() {
    global $wp_query;

    if( $wp_query->is_404 && $some_other_conditions_met == \'foo\' ):
        wp_redirect( home_url(),301 );
        exit;
    endif;
}

结束

相关推荐

我可以更改默认注册链接(没有htaccess)吗?

我使用的url类似于«wp login。php?操作=注册(&M);role=patient»和«register\\u form»挂钩,用于添加额外输入表单,该表单依赖于如下URL:add_action(\'register_form\',\'add_extra_role_fields\'); function add_extra_role_fields() { if (isset($_GET[\'role\'])) { $user_type = $_GET[\'role\']