这篇文章的方法是在远方的雪山的博客(http://salonglong.com/)中看到的,首先感谢他的分享。
相信大家逛论坛的时候,看到好的资源的时候,都会碰到“该帖子需要回复后才能查看”的字样,虽然对于访客来说,很麻烦,但是对文章的seo有很大帮助,也可以避免让好文章沉入海底,今天就介绍下,如何在WordPress中实现这个功能,适用于分享独一无二的资源的时候。
一、首先将下面给的代码,加到你的主题的 functions.php 中:
//短代码之评论可见 function reply_to_read($ atts, $ content=null) { extract(shortcode_atts(array("notice" => '<p class="reply-to-read"><span style="color:red;">温馨提示:</span>此处内容需要<a href="#respond" title="评论本文">评论本文</a>后才能查看.</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 = "***@gmail.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');
二、然后就是短代码部分(把下面两段代码中的“{}”大括号都改成“[]”中括号),编写文章时插入:
{reply}评论可见的内容{/reply}
三、提醒内容也可以自定义,代码如下:
{reply notice="自定义提醒回复内容"}自定义提醒回复内容{/reply}
四、附上我自己博客中的css样式,添加到主题下的style.css中:
.reply-to-read{ background: #F4F7F7; color: #528294; font-family: Georgia, Times New Roman, Trebuchet MS; font-size: 16px; font-style: italic; margin: 0 15px 15px; padding: 15px 20px 0; line-height: 26px; text-shadow: white 1px 1px; }
备注:转载请注明来自静湖一筑