📜  wordpress 禁用帖子 - PHP (1)

📅  最后修改于: 2023-12-03 15:35:44.325000             🧑  作者: Mango

WordPress禁用帖子 - PHP

在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添加到数组中即可。

注意:这不是一种安全措施,因此您仍应使用其他方法来防止未经授权的访问。