如何实现WordPress文章部分内容评论/回复后可见

 懿古今   2015-10-26 21:19:07 更新  技术文档

在前天我们分享了《Three主题实现WordPress文章部分内容输入密码后可见》,今天也顺便继续折腾一下WordPress文章部分内容评论/回复后可见。这个同样是利用WordPress的短代码功能来实现。

具体实现步骤如下:

1、将以下代码添加到Three主题的functions.php文件最后一个?>的前面。

  1. //部分内容回复可见
  2. function reply_to_read($atts$content=null) {
  3. extract(shortcode_atts(array("notice" => '
  4. <span style="color: red;">温馨提示:</span>此处内容需要<a title="评论本文" href="#respond">评论本文</a>后刷新才能查看!
  5. '), $atts));
  6. $email = null;
  7. $user_ID = (int) wp_get_current_user()->ID;
  8. if ($user_ID > 0) {
  9. $email = get_userdata($user_ID)->user_email;
  10. //对博主直接显示内容
  11. $admin_email = "[email protected]"//博主Email,直接对博主显示而不需要评论!
  12. if ($email == $admin_email) {
  13. return $content;
  14. }
  15. else if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) {
  16. $email = str_replace('%40', '@', $_COOKIE['comment_author_email_' . COOKIEHASH]);
  17. else {
  18. return $notice;
  19. }
  20. if (empty($email)) {
  21. return $notice;
  22. }
  23. global $wpdb;
  24. $post_id = get_the_ID();
  25. $query = "SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`='1' and `comment_author_email`='{$email}' LIMIT 1";
  26. if ($wpdb->get_results($query)) {
  27. return do_shortcode($content);
  28. else {
  29. return $notice;
  30. }
  31. }
  32. add_shortcode('reply', 'reply_to_read');

PS:将上面代码中的[email protected]替换为站点管理员的邮箱地址,以实现管理员直接可见。

2、在编辑文章的时候,只需要切换到文本模式,在需要隐藏的部分内容中前后加上短代码即可。

  1. [reply]我是被隐藏的内容,样式一(默认样式)[/reply]
  2. [reply notice="回复后才显示哟"]我是被隐藏的内容,样式二(自定义回复信息)[/reply]

其中样式一的提示信息就是第一步中的“温馨提示:此处内容需要评论本文后刷新才能查看!”,样式二的提示信息就是“回复后才显示哟”,具体选用哪个样式由大家自己决定了。

效果图如下:

如何实现WordPress文章部分内容评论/回复后可见|懿古今

评论前后效果图

至此,WordPress文章部分内容评论/回复后可见功能已经在Three主题实现,其他主题的实现方法也是一样的。

文中所用到的代码来自维7维3

PS:评论/回复后一定要刷新一下才能看到隐藏的内容哦,如果刷新后也无法看到,那肯定是你的评论需要管理员审核才行,只有审核通过后才能显示隐藏内容。

PS:如想实现WordPress文章部分内容输入密码可见的,请移步《Three主题实现WordPress文章部分内容输入密码后可见》。

PS:如想实现WordPress文章部分内容登录可见的,请移步《如何实现WordPress文章部分内容登录后可见》。

本文地址:https://www.yigujin.cn/522.html

你可能感兴趣的文章

文章标签: ,  
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请发邮件至[email protected],确认后马上更正、删除,谢谢!
淘宝和京东热销产品和VIP会员的优惠券推荐

发表评论

  1. 三月福利吧
    三月福利吧 @回复

    先收藏,以后或许用得着~

    • 懿古今
      懿古今2015-10-22 17:50  回复

      @三月福利吧其实很多主题都集成有了,不过这个很少用到,所以我的主题才没有集成,先收藏总没错 [呲牙]

  2. 路易大叔
    路易大叔 @回复

    这个功能在分享站很有用

  3. 豪杰博客
    豪杰博客 @回复

    [呲牙] 感谢博主112 收录 主宰者博客www.myzhuzaizhe.com

  4. 中国历史
    中国历史 @回复

    我怎么记得这篇文章你之前就有过呀

    • 懿古今
      懿古今2015-10-22 17:51  回复

      @中国历史[疑问] 这个还真没有,刚才特意在后台搜索一下,上次分享的是输入密码可见

  5. 内涵谷
    内涵谷 @回复

    我用的是zb其实也想要这个,不知道怎么弄

  6. 明月登楼的博客
    明月登楼的博客 @回复

    哈哈,这个是真可以有!

  7. 守心斋
    守心斋 @回复

    这个可以有!上次才提到,这次就折腾出来了。博主辛苦啦!!

    • 懿古今
      懿古今2015-10-22 17:52  回复

      @守心斋[憨笑] 顺手折腾一下,弄成三部曲,明天分享登录可见

  8. 小豆豆SEO
    小豆豆SEO @回复

    嗯,如何将文章添加到站长推荐

    • 懿古今
      懿古今2015-10-22 17:53  回复

      @小豆豆SEO主题说明页中有介绍,本站推荐的文章管理:我们在编辑文章的时候,需要添加一个自定义栏目,名称为:hot,值可任意,建议为文章ID。默认随机显示。

  9. videoclub
    videoclub @回复

    这个功能很不错

    • 懿古今
      懿古今2015-10-24 23:24  回复

      @videoclub[坏笑] 对于像贵站这种分享电影的资源站,可以设置评论后可见下载地址

      • videoclub
        videoclub2015-10-25 11:04  回复

        @懿古今这个建议确实不错

      • videoclub
        videoclub2015-10-25 11:06  回复

        @懿古今我的那个主题可以直接使用你的这个代码嘛? 对于手机访问的也适用吗?

        • 懿古今
          懿古今2015-10-25 17:56  回复

          @videoclubWordPress的都可以,手机访问跟这么没啥关系,一直适用的

      • videoclub
        videoclub2015-10-25 18:12  回复

        @懿古今好的 那我就用起来哦 呵呵

      • videoclub
        videoclub2015-10-25 19:40  回复

        @懿古今怎么使用的时候
        提示代码有问题

        • 懿古今
          懿古今2015-10-26 10:32  回复

          @videoclub[流汗] 直接放到主题内的functions.php文件最后一个?>的前面,修改邮箱地址,然后在编辑文章的时候切换到文本模式,在需要隐藏的内容前后加上相对应的短代码即可。

  10. 李阳博客
    李阳博客 @回复

    这个功能可能论坛CMS之类的用的比较多!

    • 懿古今
      懿古今2015-10-24 23:21  回复

      @李阳博客确实如此,在博客上用得比较少,不过某些资源站就会有这个要求,评论后才能看到资源的下载链接地址

  11. videoclub
    videoclub @回复

    代码里面多了个“empty”

    • 懿古今
      懿古今2015-10-26 21:19  回复

      @videoclub[强] 果然是,可能是我测试的时候都是输入邮箱地址的,所以这句代码没起作用,没发现错误,谢谢告知

      • videoclub
        videoclub2015-10-27 19:01  回复

        @懿古今[得意] 客气了 我也是反复测试 发现了 不经意看 还不容易发现的

        • 懿古今
          懿古今2015-10-27 21:00  回复

          @videoclub我看了我测试的源代码,里面只有一个empty,不懂怎么变成代码高亮就多了一个,看来以后也不能全信电脑

  12. 蒋不讲
    蒋不讲 @回复

    你好,请问一下:在隐藏内容里面如果有图片,会出现“[caption id="attachment_332" align="aligncenter" width="613"] [/caption]”之类的代码,这个问题应该怎么解决啊?

    • 懿古今
      懿古今2016-12-21 17:18  回复

      @蒋不讲这个没研究过,你可以试试添加图片但是不添加图片说明属性看看

      • 蒋不讲
        蒋不讲2016-12-23 13:50  回复

        @懿古今不添加图片说明属性倒还真可以。谢谢你!

  13. 请输入您的QQ号
    请输入您的QQ号 @回复

    你好,博主,我把代码添加进去后,以游客身份回复,没效果(不显示隐藏内容)。只有以管理员身份,回复才能显示隐藏内容,望博主指点,谢谢