wordpress在文章中回复可见内容无插件实现

我们可能在文章中需要用户回复才能看见的内容,比如一些下载链接等。这个时候我们就需要实现,具体实现我也是在网上找的,经测试在wordpress4.6版中可用。代码如下:

//回复可见
function reply_to_read($atts, $content=null) {
extract(shortcode_atts(array("notice" => '
<span style="color: red;">温馨提示:</span>此处内容需要<a title="评论本文" href="#respond">评论本文</a>后才能查看.
'), $atts));
$email = null;
$user_ID = (int) wp_get_current_user()->ID;
if ($user_ID > 0) {
$email = get_userdata($user_ID)->user_email;
//对博主直接显示内容
$admin_email = "zq299174105@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');

你需要做的就是将上面这段代码添加到主题文件夹下的function.php文件中。然后你可以在写文章的过程中使用


[@reply] 这是隐藏的内容 [/@reply] &nbsp;//默认格式你也可以自定义提示信息通过下面的格式

[@reply notice="回复得福利下载哦!"]隐藏的内容[/@reply] //自定义提示信息,其中@在文章中使用的时候应该去掉。

这样你就实现了回复可见功能。下面是一个例子:
链接: http://pan.baidu.com/s/1bTfbEu
回复见密码,老司机带你飞!

 

One thought on “wordpress在文章中回复可见内容无插件实现

发表评论

电子邮件地址不会被公开。 必填项已用*标注