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

原创 懿古今  2015-10-22 08:18  阅读 1,866 次

在前天我们分享了《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 = "2226524923@qq.com"//博主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:将上面代码中的2226524923@qq.com替换为站点管理员的邮箱地址,以实现管理员直接可见。

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

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

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

效果图如下:

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

评论前后效果图

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

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

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

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

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

历史上的今天:

本文地址:http://yigujin.cn/522.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:aiboke112
版权声明:本文为原创文章,版权归 懿古今 所有,欢迎分享本文,转载请保留出处!
WordPress免费清新BLOG/CMS/博客导航三合一响应式主题Three
WordPress免费响应式主题:Nana

发表评论


表情

  1. 蒋不讲
    蒋不讲 【农民】 @回复

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

    • 懿古今
      懿古今【博主】2016-12-21 17:18  回复

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

      • 蒋不讲
        蒋不讲 【农民】2016-12-23 13:50  回复

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

  2. videoclub
    videoclub 【省长】 @回复

    代码里面多了个“empty”

    • 懿古今
      懿古今【博主】2015-10-26 21:19  回复

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

      • videoclub
        videoclub 【省长】2015-10-27 19:01  回复

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

        • 懿古今
          懿古今【博主】2015-10-27 21:00  回复

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

  3. 李阳博客
    李阳博客 【村长】 @回复

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

    • 懿古今
      懿古今【博主】2015-10-24 23:21  回复

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

  4. videoclub
    videoclub 【省长】 @回复

    这个功能很不错

  5. 小豆豆SEO
    小豆豆SEO 【农民】 @回复

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

    • 懿古今
      懿古今【博主】2015-10-22 17:53  回复

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

  6. 守心斋
    守心斋 【市长】 @回复

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

  7. 明月登楼的博客
    明月登楼的博客 【市长】 @回复

    哈哈,这个是真可以有!

  8. 内涵谷
    内涵谷 【农民】 @回复

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

  9. 中国历史
    中国历史 【省长】 @回复

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

  10. 豪杰博客
    豪杰博客 【村长】 @回复

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

  11. 路易大叔
    路易大叔 【市长】 @回复

    这个功能在分享站很有用

  12. 三月福利吧
    三月福利吧 【镇长】 @回复

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

    • 懿古今
      懿古今【博主】2015-10-22 17:50  回复

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