5

我不确定这是一个已知问题还是假设是这样的表现,

任何 wordpress 网站,如果你在 URL 的末尾加上一个数字,例如,

http://perishablepress.com/wordpress-multisite-mamp/

我们把 1 或任何数字放在最后

http://perishablepress.com/wordpress-multisite-mamp/123

我们不会得到该NOT FOUND页面,我们仍将停留在同一页面,即

http://perishablepress.com/wordpress-multisite-mamp/

这是错误还是正常?我们如何重定向到 NOT FOUND PAGE 呢?

4

1 回答 1

7

这不是错误,123被解释为分页参数:

Request: wordpress-multisite-mamp/123
Query String: page=%2F123&name=wordpress-multisite-mamp
Matched Rewrite Rule: ([^/]+)(/[0-9]+)?/?$
Matched Rewrite Query: name=wordpress-multisite-mamp&page=%2F123

帖子可以用 分页<!--nextpage-->。如果没有找到更多内容,WordPress 会显示最后一页的内容(如果帖子没有分页,则显示完整的帖子)。

要在分页参数超过页数时重定向到 404 页面,请将以下内容放入functions.php文件中:

add_action( 'template_redirect', 'so16179138_template_redirect', 0 );
function so16179138_template_redirect()
{
    if( is_singular() )
    {
        global $post, $page;
        $num_pages = substr_count( $post->post_content, '<!--nextpage-->' ) + 1;
        if( $page > $num_pages ){
            include( get_template_directory() . '/404.php' );
            exit;
        }
    }
}
于 2013-04-23T22:24:35.313 回答