WordPress 允许您创建受密码保护的帖子。最近,我们的一位读者询问是否可以隐藏网站上受密码保护的帖子。默认情况下,WordPress 隐藏受密码保护的帖子的内容,但它仍然显示带有“受保护”前缀的帖子标题。在本文中,我们将向您展示如何在 WordPress 循环中隐藏受密码保护的帖子。
为什么在 WordPress 中隐藏受密码保护的帖子?
默认情况下,WordPress 显示受密码保护的帖子及其标题和“受保护”前缀。用户需要输入密码才能查看帖子内容。
该帖子标题在主页、档案、最近帖子小部件等上可见。如果您想将某些内容完全保密,那么这不是理想的选择。
没有密码的用户不仅可以看到帖子标题,还可以尝试输入密码。众所周知,密码是可以被破解的。
话虽如此,让我们来看看如何在 WordPress 循环中隐藏受密码保护的帖子,以便其他用户无法看到它们。
在 WordPress 中隐藏受密码保护的帖子
只需将此代码添加到主题的functions.php文件或特定于站点的插件中即可。
1234567 | function wpb_password_post_filter( $where = '' ) { if (!is_single() && !is_admin()) { $where .= " AND post_password = ''" ; } return $where ; } add_filter( 'posts_where' , 'wpb_password_post_filter' ); |
由
此代码只是使用过滤器修改发送到 WordPress 的查询posts_where
。它要求 WordPress 获取所有没有密码的帖子。
访问您的网站,您将看到受密码保护的帖子在主页、档案或最近帖子等小部件中不再可见。
您仍然可以通过帖子本身的直接 URL 来访问该帖子。
上面的示例对所有用户隐藏受密码保护的帖子。如果您运行一个多作者WordPress 网站并希望能够编辑私人帖子的用户可以查看受保护的帖子,该怎么办?
只需使用另一个条件标记修改上面的代码,如下所示:
1234567 | function wpb_password_post_filter( $where = '' ) { if (!is_single() && !current_user_can( 'edit_private_posts' ) && !is_admin()) { $where .= " AND post_password = ''" ; } return $where ; } add_filter( 'posts_where' , 'wpb_password_post_filter' ); |
由
在此示例中,我们检查用户是否无法编辑受密码保护的帖子,然后仅显示没有密码的帖子。这样做,所有具有管理员和编辑者用户角色的用户都将在站点前端看到受密码保护的帖子。
我们希望本文能帮助您隐藏网站上 WordPress 循环中受密码保护的帖子。您可能还想查看有关如何在 WordPress 中更改私有和受保护帖子前缀的教程。