WordPress文章密码保护在首页(摘要)不起作用显示出内容

知识分享 前端客 1732℃ 0评论

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

分析

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

<?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0,240,"...");?>

解决

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

<?php if (post_password_required()):the_content(); else :  ?>
            <?php echo mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 340,"...");endif; ?>

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

注意,这里用的是mb_strimwidth,在有些主机有问题,解决办法见这里WordPress内置函数mb_strimwidth()不能用的解决办法

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)