WordPress回复可见的实现方法
分类:折腾 ; 热度:2223 ; 最后更新于2020 年 02 月 14 日
WordPress回复可见的功能,会有一些问题,比如使用多说导致回复后,不能立刻显示内容,,但是如果是用WordPress自带评论模块的话,那么这个功能,可谓是秒回秒可见.
1. 在functions.php中加入下列代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// 部分内容评论可见 // 使用方法:<!--hide start{reply_to_this=true}-->隐藏内容<!--hide end--> add_filter('the_content', 'hide'); add_filter('comment_text','hide'); function hide($content) { if (preg_match_all('/<!--hide start{?([sS]*?)}?-->([sS]*?)<!--hide end-->/i', $content, $matches)) { $params = $matches[1][0]; $defaults = array('reply_to_this' => 'false'); $params = wp_parse_args($params, $defaults); $stats = 'hide'; if ($params['reply_to_this'] == 'true') { global $current_user; get_currentuserinfo(); if ($current_user->ID) { $email = $current_user->user_email; } else if (isset($_COOKIE['comment_author_email_'.COOKIEHASH])) { $email = $_COOKIE['comment_author_email_'.COOKIEHASH]; } $ereg = "^[_.a-z0-9]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,5}$"; if (eregi($ereg, $email)) { global $wpdb; global $id; $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_author_email = '".$email."' and comment_post_id='".$id."'and comment_approved = '1'"); if ($comments) { $stats = 'show'; } } $tip = __('<span class="vihide">抱歉,隐藏内容 <a href="#comments">回复</a> 后刷新可见</span>', 'hide'); } else { if (isset($_COOKIE['comment_author_'.COOKIEHASH]) or current_user_can('level_0')) { $stats = 'show'; } $tip = __(); } $hide_notice = $tip; if ($stats == 'show') { $content = str_replace($matches[0], $matches[2], $content); } else { $content = str_replace($matches[0], $hide_notice, $content); } } return $content; } |
2. 加入css样式,美化一下,可自行调整。
1 2 3 4 |
/*回复可见*/ .vihide{display:inline-block;text-align:center;border: 2px dashed #ff6666;padding:8px;margin:10px auto;color:#FF6666;width:100%;} .vihide a{color:#04a1ef} .vihide a:hover{color:#4ec6c8} |
3. 在functions.php加入下面代码,实现编辑器后面快捷按钮功能。
1 2 3 4 5 6 7 8 9 |
// 添加编辑器按钮 - 回复可见 function reply_view_tags($mce_settings) { ?> <script type="text/javascript"> QTags.addButton( 'hhb_reply_view', '回复可见', '<!--hide start{reply_to_this=true}-->', '<!--hide end-->' ); </script> <?php } add_action('after_wp_tiny_mce', 'reply_view_tags'); |
后台效果图: