WordPress 禁止通过文章 ID 动态链接方式访问

如果你的 WordPress 网站已经开启伪静态,可能就不需要让 WordPress 继续通过/?p=postid 这样的方式在访问,虽然 WordPress 开启伪静态后会自动跳转到新的地址上面,但是对于像子凡这样有强迫症的人来说,这一点就绝对不能忍受,因为搜索引擎它始终有时候会调皮的收录这样的动态地址,看上去就是让人非常的不爽,所以子凡才又开始折腾了,其实都算不上折腾,真的是 so easy!

WordPress 禁止通过文章 ID 动态链接方式访问

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

 

//禁止 WordPress 动态文章 ID 访问
//last update 2016/11/07
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页面