WordPress禁止通过文章ID动态访问

by Web全栈工程师 on 2013 年 10 月 23 日

虽然Wordpress开启了静态化,但是通过/?p=postid,仍然可以自动跳转到自定义链接,

如果需要实现禁止Wordpress查询文章ID跳转,就要用Wordpress API 拦截到查询请求,并跳转到404页面,即可实现。

在当前主题的functions.php中添加以下代码:

//禁止通过PostID访问文字
add_action('parse_query', 'disable_permalink_by_var_p');
function disable_permalink_by_var_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;
	}
}

Comments on this entry are closed.

Previous post:

Next post: