教程转自:星空知-子比评论区设置私密评论
迭代版本:
- 2024.09.25:第一版
- 2024.09.26:第二版
魔改改进:
- 复选框和文字间增加一段距离
- 设置私密等与原主题保持一致
- 设置复选框与主题保持一致
代码修改:
functions.php代码
//私密评论
function yxc_scripts(){
if (!is_admin()) {
$script = array(
'smminjs' => 'https://cdn.catchyxc.com/wp-resource/js/private-comments.js',
);
foreach( $script as $k => $v ){
wp_register_script( $k, $v, array(), '2.4.0', true);
};
wp_enqueue_script('smminjs');
if (is_singular()) {
wp_enqueue_script('smminjs');
};
}
}
add_action('wp_enqueue_scripts', 'yxc_scripts');
function yxc_private_message_hook( $comment_content , $comment){
$comment_ID = $comment->comment_ID;
$parent_ID = $comment->comment_parent ? $comment->comment_parent : '';
$parent_email = get_comment_author_email($parent_ID);
$is_private = get_comment_meta($comment_ID,'_private',true);
$email = $comment->comment_author_email;
$current_commenter = wp_get_current_commenter();
$current_user = wp_get_current_user();
$html = '<span style="color:#558E53"><i class="fa fa-lock fa-fw"></i>该评论为私密评论</span>';
if ( $is_private ) {
if ( !is_user_logged_in() && $current_commenter['comment_author_email'] == '' ) {
return $comment_content = $html;
}else
if ($current_commenter['comment_author_email'] == '' && $current_user->user_email == $parent_email || current_user_can('delete_user') || $current_user->user_email == $email || $current_commenter['comment_author_email'] == $email || $parent_email == $current_commenter['comment_author_email'] && $current_commenter['comment_author_email'] !== ''){
return $comment_content = '【私密评论】 ' . $comment_content;
}
return $comment_content = $html;
}
return $comment_content;
}
add_filter('get_comment_text','yxc_private_message_hook',10,2);
function yxc_mark_private_message( $comment_id ){
if ( $_POST['is-private'] ) {
update_comment_meta($comment_id,'_private','true');
}
}
add_action('comment_post', 'yxc_mark_private_message');
//将某条评论设为私密评论
add_action('wp_ajax_nopriv_mrhe_private', 'yxc_private');
add_action('wp_ajax_mrhe_private', 'yxc_private');
function yxc_private(){
$comment_id = $_POST["p_id"];
$action = $_POST["p_action"];
if ( $action == 'set_private'){
update_comment_meta($comment_id, '_private', 'true');
}
if ($action == 'del_private'){
delete_comment_meta($comment_id, '_private','true');
}
echo '设置成功';
die;
}
//挂载到评论底部
function yxc_footer_info_add_private($info, $comment) {
if ( current_user_can( 'manage_options' ) ) {
$comment_ID = $comment->comment_ID;
$i_private = get_comment_meta($comment_ID, '_private', true);
$flag = ''; // 初始化 $flag 为空字符串
if (empty($i_private)) {
$flag .= ' <a href="javascript:;" rel="external nofollow" rel="external nofollow" data-actionp="set_private" data-idp="' . get_comment_id() . '" id="sp" class="sm"><span class="has_set_private">设为私密</span></a>';
$info = $info . $flag;
} else {
$flag .= ' <a href="javascript:;" rel="external nofollow" rel="external nofollow" data-actionp="del_private" data-idp="' . get_comment_id() . '" id="sp" class="sm"><span class="has_set_private">删除私密</span></a>';
$info = $info . $flag;
}
}
return $info;
}
add_filter('comment_footer_info', 'yxc_footer_info_add_private', 99, 2);
js代码
$(function() {
$(".links-card ul.list-inline img").each(function() {
if ("" == $(this).attr("data-src")) {
var a = "" + $(this).parent().attr("href");
$(this).attr("src", a)
}
}), $(document).on("click", ".sm", function() {
var a = $(this);
if (a.hasClass("private_now")) return notyf("您之前已设置过私密评论", "warning"), !1;
a.addClass("private_now");
var t = a.data("idp"),
e = a.data("actionp"),
n = a.children(".has_set_private"),
r = {
action: "mrhe_private",
p_id: t,
p_action: e
};
return $.post("/wp-admin/admin-ajax.php", r, function(a) {
n.html(a)
}), !1
})
});
/wp-content/themes/zibll/template/comments.php代码
<!--私密评论-->
<label class="but c-blue pw-1em" data-placement="top" data-toggle="tooltip" title="你的评论仅评论双方可见。" style="margin-bottom: 0px; -moz-user-select: none; -ms-user-select: none; user-select: none; margin-right: 6px;">
<input id="is-private-checkbox" name="is-private" type="checkbox" style= "margin: 1px 4px 1px 0; width: 12px; height: 12px; min-width: 0em;">私密</label>
![子比评论区设置私密评论第2张-星空知 图片[1] - 子比评论区设置私密评论 - 云晓晨 KaiQi.Wang](https://cdn.kaiqi.wang/wp-content/uploads/133908a0bc20250814214547.webp)
CSS代码
在后台主题设置[自定义CSS样式]添加下面CSS代码:
/*设置私密复选框样式*/
#is-private-checkbox::before {
transition: transform 0.2s ease;
}
#is-private-checkbox:checked::before {
transform: translateY(-50%) translateX(-5%) scale(0.5);
}
#is-private-checkbox:not(:checked)::before {
transform: translateY(0) translateX(0) scale(1);
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容