WordPress前台文章页用户只能看见自己的评论

test 1 10
摘要:

老白博客今天跟大家分享的WordPress技巧是纯代码实现“WordPress前台文章页用户只能看见自己的评论”。效果是:对于每一个登录用户,在文章页只能看到自己的评论,看不见其他人的评论;而对于网站管理员,则能够看到所有评论(这个功能很奇怪,不过功能嘛,有需求就有市场,可能还是朋友需要)

老白博客今天跟大家分享的WordPress技巧是纯代码实现“WordPress前台文章页用户只能看见自己的评论”。效果是:对于每一个登录用户,在文章页只能看到自己的评论,看不见其他人的评论;而对于网站管理员,则能够看到所有评论(这个功能很奇怪,不过功能嘛,有需求就有市场,可能还是朋友需要)

WordPress前台文章页用户只能看见自己的评论

[h1]1.思路来源[/h1]

这个是在搬主题和WordPress大学两位大佬那里看到的,是用于设置WordPress后台编辑角色的权限设定的,然后才有了本文的WordPress前台用户评论设定,两位大佬的代码如下

[h2]1.1 后台仅查看评论[/h2]

WordPress大学链接:https://www.wpdaxue.com/show-comments-authors-own-posts.html

功能:限制用户只能看到自己文章下的评论,将下面的代码添加到主题根目录下的 functions.php 即可:

function wpdx_get_comment_list_by_user($clauses) {
	if (is_admin()) {
		global $user_ID, $wpdb;
		$clauses['join'] = ", wp_posts";
		$clauses['where'] .= " AND wp_posts.post_author = ".$user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
	};
	return $clauses;
};
if(!current_user_can('edit_others_posts')) {
	add_filter('comments_clauses', 'wpdx_get_comment_list_by_user');
}

[h2]1.2 后台仅查看评论和文章[/h2]

搬主题链接:https://www.banzhuti.com/wordpress-only-view-own-comments.html

代码功能:限制普通用户在WordPress后台中只能查看自己相关的评论和文章信息

function wpdx_get_comment_list_by_user($clauses) {
   
if (is_admin()) {
   
global {
   mathJaxContainer[0]}wpdb;
$clauses['join'] = ", wp_posts";
{
   mathJaxContainer[1]}user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
};
return $clauses;
};
if(!current_user_can('edit_others_posts')) {
   
add_filter('comments_clauses', 'wpdx_get_comment_list_by_user');
}


function bzt_parse_query_useronly( $wp_query ) {
   
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {
   
if ( !current_user_can( 'add_user' ) ) {
   
global $current_user;
{
   mathJaxContainer[2]}current_user->id );
}
}
}
add_filter('parse_query', 'bzt_parse_query_useronly' );

[h1]2.前台只能看自己评论[/h1]

上述两位大佬的代码都是作用于WordPress后台,更明确的说,是WordPress用户中的“作者角色”,老白这里给出一个针对WordPress前台的“用户”的代码,

[h2]2.1 功能代码[/h2]

将下面的代码,加到自己主题的function.php文件

此部分已被隐藏

发表评论刷新页面后方可查看

[h2]2.2 演示效果和测试地址[/h2]

地址:https://test.xcbtmw.com/8.html

效果说明:非登录用户看不到任何评论、登录用户只能看到自己的评论

测试账号用户名:2

账号密码:2

[h2]2.3 注意事项[/h2]

既然设置了只能查看用户自己的评论,就需要关闭访客评论功能。

WordPress仪表盘—设置—讨论设置,勾选“用户必须注册并登录才可以发表评论”

 

发表评论 取消回复
表情 图片 链接 代码

  1. sdklib
    sdklib Lv 1

    挺不错的功能

    • winter
      winter 站长

      @sdklib这是一个潘多拉功能(直到用的时候才知道有没有用)<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/huaji.png' title='emoji'/>

  2. 小楚
    小楚 Lv 1

    很好的功能,妙!!!

  3. 小楚
    小楚 Lv 1

    上面这个功能在7b2部署无效,能测试下吗,老白。

    • 老白
      老白 站长

      @小楚哈哈,这个功能我还真没在7B2上测试过<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/tushe.png' title='emoji'/>,我用个人博客主题测试没问题。

    • 老白
      老白 站长

      @小楚待我有空测试测试

  4. 小楚
    小楚 Lv 1

    是的,我测试是不行的<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/hehe.png' title='emoji'/>

    • 老白
      老白 站长

      @小楚我的php8.2安装不了B2主题,你的php是哪个版本,我都快一年没用B2了<img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/haha.png' title='emoji'/><img class='comments-emoji' src='https://www.xcbtmw.com/wp-content/themes/theme-document-master/assets/smilies/haha.png' title='emoji'/>

分享