为什么要在WordPress中隐藏密码保护的文章?
默认情况下,WordPress会显示密码保护文章的标题,并带有一个“Protected”前缀。用户需要输入密码才能查看文章内容。
这些文章标题会出现在主页、存档、最近文章小工具等地方。如果您想让一些内容完全私密,这并不理想。
不仅没有密码的用户能看到文章标题,他们还可以尝试输入密码。众所周知,密码是可以被破解的。
在WordPress中隐藏密码保护的文章
只需将以下代码添加到您的主题的functions.php文件或特定于站点的插件中:
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' );
此代码通过使用posts_where过滤器修改发送到WordPress的查询。它要求WordPress获取所有没有密码的文章。
访问您的网站,您将看到密码保护的文章不再出现在主页、存档或最近文章的小工具中。
您仍然可以通过直接URL访问这些文章。
上述示例隐藏了所有用户的密码保护文章。如果您运行的是多作者WordPress网站,并希望有编辑私密文章权限的用户能查看这些文章,可以简单修改代码,如下:
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中的私密和保护文章前缀。