WordPress – 为文章增加评论才可查看相关隐藏内容的代码
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:WordPress – 为文章增加评论才可查看相关隐藏内容的代码
原文链接:https://www.stubbornhuang.com/811/
发布于:2020年05月05日 19:19:34
修改于:2020年05月05日 19:32:19

1 比较普通的CSS的代码
在主题的function.php中加入以下代码:
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '<p class="reply-to-read" style="border-width: 1px 1px 1px 1px;border-color: #F2F2F2;line-height: 150%;"><blockquote><font color="#ff0000"><b>温馨提示</b></font>: 隐藏内容需要<a href="#respond" title="点击进行评论"> 回复评论 </a>后才能查看, 评论后请 <strong><a href="javascript:location.reload()" title="点击刷新"> 刷新 !</a></strong>.</blockquote></p>'), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
//对博主直接显示内容
$admin_email = "xxxxxxx@xx.com"; //把左面的邮箱换成博主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');
2 增加了红点边框的CSS的代码
在主题的function.php中加入以下代码:
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '<p class="reply-to-read" style="text-align:center; border:2px solid #f00; border-style:dotted; border-radius:4px; padding:5px; margin:10px;"><strong style="color: red;">温馨提示:</strong>为了避免资源链接被和谐,此处内容需要您<strong><a href="#respond" title="点击进行评论"> 回复评论 </a></strong>后才能查看, 评论后请 <strong><a href="javascript:location.reload()" title="点击刷新"> 刷新!</a></strong></p>'), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
//对博主直接显示内容
$admin_email = "xxxxxxx@xx.com"; //把左面的邮箱换成博主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');
3 修改CSS样式
大家可以根据自己的需要修改上述代码extract语句中css自己定制化的css样式。
样式示例:
4 使用方法

5 注意的点
如果站点在后台设置了评论审核,那么游客评论之后需要站点管理员审核评论通过之后刷新页面才会看到隐藏内容,所以如果要使用该功能建议关闭评论审核功能。
当前分类随机文章推荐
- WordPress - 修改管理后台登录地址,防止恶意爆破 阅读2675次,点赞0次
- WordPress - 在文章被复制时弹出弹窗提示转载注明原创 阅读3032次,点赞2次
- WordPress - 修复WordPress升级5.1之后版本评论回复按钮失效不跳转以及不弹出评论框的问题 阅读741次,点赞0次
- WordPress - 使用Cravatar替换Gravatar提供头像服务 阅读850次,点赞0次
- WordPress - WordPress升级5.8之后获取最新评论的代码失效问题解决 阅读1440次,点赞0次
- WordPress - 纯代码在文章内容末尾添加当前文章同一分类下的随机推荐文章 阅读2343次,点赞0次
- WordPress - 升级WordPress5.8后切换回旧版的小工具管理页面 阅读1459次,点赞0次
- WordPress - 文章自定义字段post_meta添加、更新、删除、获取操作 阅读1014次,点赞0次
- WordPress - 在后台管理面板添加禁止某一个用户登录的功能 阅读57次,点赞0次
- WordPress - get_footer函数,加载主题底部页脚footer模板 阅读748次,点赞0次
全站随机文章推荐
- 资源分享 - Real-Time Shadows英文高清PDF下载 阅读3932次,点赞0次
- Python - 读取csv文件和在csv文件写入内容 阅读368次,点赞0次
- 神经网络 - 模型训练需注意的细节与超参数调优 阅读640次,点赞1次
- Python - 爬取直播吧首页重要赛事赛程信息 阅读227次,点赞0次
- FFmpeg - 根据视频比特率和音频比特率计算视频文件大小 阅读278次,点赞0次
- Python3爬虫 - requests库的requests.exceptions所有异常详细说明 阅读5380次,点赞2次
- C++ - std::string与std::wstring相互转换 阅读1712次,点赞0次
- OpenCV - 静态图片人脸检测和摄像头人脸检测 阅读2983次,点赞0次
- Python - argparse命令行参数解析库用法总结 阅读490次,点赞0次
- VTK以批量三维点坐标为中心(点云)绘制球体,可用于标识特征点或者是化学分子 阅读4483次,点赞0次
评论
167