Wordpress/WordPress教程

WordPress禁止通过文章ID动态链接方式“?p=id”访问

魂Soul · 20-02-241,988

如果你的 WordPress 网站已经开启伪静态,可能就不需要让 WordPress 继续通过/?p=postid 这样的方式在访问。

虽然 WordPress 开启伪静态后会自动跳转到新的地址上面,但是对于某些有强迫症的人来说比如我,这一点就绝对不能忍受,因为搜索引擎它始终有时候会调皮的收录这样的动态地址。

WordPress禁止通过文章ID动态链接方式“?p=id”访问-魂之网务

通过把以下代码添加到当前主题的 functions.php 中即可实现

//禁止 WordPress 动态文章 ID 访问
//sokuzy.com/wpnopid.html
add_action('parse_query', 'disable_permalink_isvars_p');
function disable_permalink_isvars_p( $wp_query, $error = true ) {
if(get_query_var('p') && !is_preview()){
$wp_query->query_vars['p'] = false;
$wp_query->query['p'] = false;
// to error
if ( $error == true ) $wp_query->is_404 = true;
}
}

上方代码效果就是将?p=id的链接直接指向404页面,效果如下图:

WordPress禁止通过文章ID动态链接方式“?p=id”访问-魂之网务

0 条回应