今天设置文章密码保护后,发现在首页摘要里,被保护的内容竟然直接显示出来了。
如果你碰到这个问题,就说明你的主题还不够完善。这类问题都是,首页的文章上如果是摘要显示的或者截断输出的,密码保护根本不会起到作用。

分析

一般来说,WordPress 中输出文章都是用 这个函数,但在一些主题中,首页一般不是完全输出文章内容的——而是输出摘要或者截断输出那样,比如一些主题作者常常用下面的代码代替原来的 

  1. <?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0,240,“…”);?>
  2.  

解决

解决的方法也很简单,给一个判断函数,判断是否为密码保护文章就可以了,WordPress 中有这个函数post_password_required,所以原来的代码应该改为下面这样:

  1. <?php if (post_password_required()):the_content(); else : ?>
  2. <?php echo mb_strimwidth(strip_tags(apply_filters(‘the_content’, $post->post_content)), 0, 340,“…”);endif; ?>

其他情况也大概差不多,反正是对输出content 的函数下刀就可以了。