📅  最后修改于: 2023-12-03 15:35:44.325000             🧑  作者: Mango
在WordPress网站上,有时候您可能需要临时禁用某些文章或页面。你可以使用以下PHP代码来实现。
首先,您需要将以下代码复制到您的functions.php文件中。
function wpb_filter_prevent_post_display($query){
// 如果是管理员,则返回
if( is_admin() ) {
return;
}
// 定义要禁用的文章ID
$restricted_posts = array(26, 5, 16); // 26, 5, 16是示例文章ID,请根据您的需要更改
// 获取目前正在查看的文章ID
$postId = $query->get('p');
// 如果当前文章的ID在要禁用的文章列表中,则将其设置为404
if(in_array($postId, $restricted_posts)){
$query->set_404();
status_header( 404 );
nocache_headers();
}
}
add_filter( 'pre_get_posts', 'wpb_filter_prevent_post_display' );
wpb_filter_prevent_post_display
这个函数是过滤器“pre_get_posts”的回调函数。在这个函数中,我们首先检查用户是否是管理员。如果是管理员,则返回。否则,我们定义了一个数组,其中包含要禁用的文章ID。
我们获取当前正在查看的文章ID,并检查是否在我们要禁用的文章列表中。如果是,则我们将其设置为404错误页面,并发送相应的标头。
add_filter( 'pre_get_posts', 'wpb_filter_prevent_post_display' )
最后一行将我们的函数作为过滤器添加到WordPress的“pre_get_posts”钩子中。
通过使用以上代码,您可以轻松地禁用WordPress网站上的任何文章或页面。只需将要禁用的文章ID添加到数组中即可。
注意:这不是一种安全措施,因此您仍应使用其他方法来防止未经授权的访问。