给WordPress添加功能:隐藏内容回复可见

首先,容我吐槽三分钟。
都说WordPress好用,说实话,我真没感觉到哪里好用。
这都更新了多少代了,连个最基本的调整中文字体的功能都没有!
其他一些实用的功能,比如博客浏览量、文章列表翻页、评论里添加表情,等等等,也一直没有自带。

我一直坚持在用WordPress的原因是:只有这个博客程序一直在更新,其他的博客程序要么几年不更新了,要么倒闭了。程序一直在更新,安全性就会有保障,因为它会一直修复漏洞、可以抵挡更新换代的各种网络攻击。

废话不说,今天教大家给WordPress添加一个实用功能:隐藏内容回复可见。

将下面的代码添加到主题的 functions.php 文件:

//部分内容评论可见
function reply_to_read($atts, $content = null) {
 extract(shortcode_atts(array(
 "notice" => '<blockquote><center><p class="reply-to-read" style="color: blue;">注意:本段内容须成功“<a href="' . get_permalink() . '#respond" title="回复本文">回复本文</a>”后“<a href="javascript:window.location.reload();" title="刷新本页">刷新本页</a>”方可查看!</p></center></blockquote>'
 ) , $atts));
 $email = null;
 $user_ID = (int)wp_get_current_user()->ID;
 if ($user_ID > 0) {
 $email = get_userdata($user_ID)->user_email;
 //对博主直接显示内容
 $admin_email = get_bloginfo('admin_email');
 if ($email == $admin_email) {
 return $content;
 }
 } else if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) {
 $email = str_replace('%40', '@', $_COOKIE['comment_author_email_' . COOKIEHASH]);
 } else {
 return $notice;
 }
 if (empty($email)) {
 return $notice;
 }
 global $wpdb;
 $post_id = get_the_ID();
 $query = "SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`='1' and `comment_author_email`='{$email}' LIMIT 1";
 if ($wpdb->get_results($query)) {
 return do_shortcode($content);
 } else {
 return $notice;
 }
}
add_shortcode('reply', 'reply_to_read');

调用方法

编辑文章时,使用下面的两种简码调用:

删除第一个reply的空格,把斜杠替换为/

注意:此方法对QQ快速登录的用户是无效的。

//简码1 任选一种使用

[ reply]评论可见的内容[斜杠reply]

//简码2 任选一种使用

[ reply notice="自定义的提示信息"]评论可见的内容[斜杠reply]

[reply]我是隐藏内容[/reply]

代码转载自:https://www.waizhuti.com/2123.html



354 次阅读 | 发表评论
2019年4月18日 | 归档于 WordPress知识
标签:
  1. something
    2019年4月20日 20:58 | #1

    这个有点耗资源,cuid先入库比较好

  2. 严重浪漫
    2019年4月21日 19:31 | #2

    something :

    这个有点耗资源,cuid先入库比较好

    感谢指点,代码是网上找来的,我也不知道怎么去优化。

发表评论

XHTML: 您可以使用这些标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:lol: :( 8-O :oops: 8) :?: :!: :evil: more »