如何解决WordPress首页密码保护失效问题
WordPress的文章的密码保护功能有时候经常用到,但是在很多主题里面,因为主题作者在首页显示时,使用了显示摘要或者截断输出,导致使用了密码保护的文章,内容被直接显示出来。博主就遇到了类似问题,经过一番研究,博主找到了解决办法,只需要修改一下代码即可。
首先,WP的后台中,找到:外观–编辑–首页模板。
在首页模板代码中找到以下代码:
<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 365,"..."); ?>
在这段代码的上面插入一行:
<?php if (post_password_required()):the_content(); else : ?>
然后,在源代码结尾部分插入:
endif;
改好以后的代码就变成如下:
<?php if (post_password_required()):the_content(); else : ?> <?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 365,"..."); ?>
原理解释:WordPress官方默认主题采用的是显示文章内容,调用的是这个函数,而很多主题作者处于美观的考虑,采取了显示摘要或者截断输出,调用的是:
<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 365,"..."); ?>
这就导致了密码保护在首页失效,其内容被直接显示出来。要解决这个问题,也是很简单的,只需要加入一个判断函数,判断是否为密码保护文章,就解决了问题。