如何从WordPress循环隐藏密码保护的帖子

WordPress允许你创建密码保护的帖子。 最近我们的一位读者询问是否有可能从网站上隐藏密码保护的帖子。 默认情况下,WordPress隐藏密码保护的帖子的内容,但仍然显示“保护”前缀的帖子标题。 在本文中,我们将向您展示如何从WordPress循环中隐藏受密码保护的帖子。

为什么在WordPress中隐藏受密码保护的帖子?

默认情况下,WordPress会显示带有标题和“受保护”前缀的密码保护帖子。 用户将需要输入密码才能查看帖子的内容。

密码保护的帖子显示在主页和小部件

这个帖子的标题是可见的主页,档案,最近的帖子小部件等。如果你想保持一些内容完全隐私,那么这是不是一个理想的。

不仅没有密码的用户可以看到帖子标题,他们也可以尝试输入密码。 众所周知,密码可能被破解。

话虽如此,让我们来看看如何从WordPress循环隐藏您的密码保护的帖子,以便其他用户不能看到它们。

在WordPress中隐藏受密码保护的帖子

只需将此代码添加到您的主题的functions.php文件或特定于站点的插件。

函数wpb_password_post_filter($ where =''){
     if(!is_single()&&!is_admin()){
         $ where。=“AND post_password =''”;
     }
     返回$ where;
 }
 add_filter('posts_where','wpb_password_post_filter'); 

这个代码只是修改发送到WordPress的查询使用 posts_where 过滤。 它要求WordPress获取所有没有密码的帖子。

访问你的网站,你会看到,受密码保护的帖子不再显示在主页,档案或小部件,如最近的帖子。

隐藏WordPress的保护帖子之前和之后

您仍然可以通过直接访问该帖子来访问该帖子。

上面的例子,隐藏所有用户的密码保护的帖子。 如果你运行一个多作者WordPress的网站,并希望受保护的帖子可以被用户编辑的私人帖子查看?

只需使用另一个条件标签修改上述代码,如下所示:

函数wpb_password_post_filter($ where =''){
    if(!is_single()&&!current_user_can('edit_private_posts')&&!is_admin()){
         $ where。=“AND post_password =''”;
     }
     返回$ where;
 }
 add_filter('posts_where','wpb_password_post_filter'); 

在这个例子中,我们检查用户是否不能编辑密码保护的帖子,然后只显示没有密码的帖子。 这样做的所有用户管理员和编辑用户角色将在您的网站的前端看到密码保护的职位。

我们希望这篇文章能够帮助您在网站上隐藏来自WordPress循环的受密码保护的文章