记录成长
分享快乐

DUX主题添加首页评论自动排第一功能

关于首页评论自动排第一这个功能,很多网站上都已经有了,网上相关的源码也是很多,这里只简单记录一下自己博客(DUX主题)上实现的过程。

先放张前端显示图片看下效果:

修改主题前必看>>> 关于本博“主题修改”你需要知道的一些事 。

核心模板文件

新建一个名为 module_autofirst_by_comment.php 的文件,并将以下代码复制到该文件中:

<?php 
/* 首页最新评论自动排第一
 * 蝈蝈要安静——一个不学无术的伪程序员
 * https://blog.quietguoguo.com
*/

function autofirst_by_comment($num){
    global $wpdb;
    $user_sql="SELECT comment_author, comment_author_url, comment_date from $wpdb->comments where comment_ID in (select max(comment_ID) from $wpdb->comments where comment_approved='1' and comment_author_url !='' and user_id='0'  GROUP BY comment_author_email)  ORDER BY comment_date DESC LIMIT $num";
    $user_info = $wpdb->get_results($user_sql);
    foreach ($user_info as $user_info_li){
        $user_info_lis= "<li class='autofirst-li'><i class='fa fa-yelp' aria-hidden='true' style='color:#999; font-size:12px; '></i>&nbsp;&nbsp;<a target=\"_blank\" href=\"".$user_info_li->comment_author_url."\">".$user_info_li->comment_author."</a></li>";
        $out_user_info.= $user_info_lis;
    }
    $out_user_info = "<div class='title autofirst-title'><h3>".QGG_options('qgg_autofirst_by_comment_title')."</h3></div><div class='autofirst-div' ><ul>".$out_user_info."</ul></div>";
    echo $out_user_info ;
}

autofirst_by_comment(QGG_options('qgg_autofirst_by_comment_num'))

?>

上述代码是实现此功能的核心代码,请确保代码复制准确无误。然后将代码丢到主题的 modules 文件夹中即可,当然丢到其他文件中也可以,只要后面显示代码中路径引用正确即可。

后台选项代码

将以下代码复制到主题的 options.php 文件中即可:

	// 首页评论自动排第一	
	$options[] = array(
	'name' => __('首页评论自动排第一', 'QGG'),
	'id' => 'qgg_autofirst_by_comment_open',
	'std' => true,
	'desc' => __('开启', 'QGG'),
	'type' => 'checkbox');
	
	$options[] = array(
		'name' => __('首页评论自动排第一-标题', 'QGG'),
		'id' => 'qgg_autofirst_by_comment_title',
		'std' => __('评论自动排第一', 'QGG'),
		'type' => 'text');
	
	$options[] = array(
	'name' => '显示评论者数量',
	'desc' => '设置需要显示的个数。不明白?点击这里 进行留言。',
	'id' => 'qgg_autofirst_by_comment_num',
	'std' => 25,
	'class' => 'mini',
	'type' => 'text');

前端显示代码

将以下代码丢到主题的 index.php 文件中去,具体位置大家根据个人喜好选择即可。

<!-- 首页最新评论自动排第一 -->
<?php  
	if( QGG_options('qgg_autofirst_by_comment_open') ){
		include get_stylesheet_directory() . '/modules/module_autofirst_by_comment.php';
	}
?>

代码主要是用于判断后台是否开启了“首页评论自动排第一”功能,并调取对应的文件,注意代码中文件的位置应与你核心代码的位置一致。

CSS样式美化

添加完成后前端显示效果应该不符合我们要求,将以下代码复制到主题 main.css 文件中即可,当然你也可以自由调整样式。

/** 首页评论自动排第一 */
.autofirst-div{
	background: #FFF;
    padding: 15px 20px;
    margin: 10px 0px;
    border-radius: 4px;
}

.autofirst-li {
    width: 20%;
    height: 28px;
    line-height: 20px;
    display: inline-block;
    padding: 3px 9px;
    color: #FFF;
    overflow: hidden;
}

@media (max-width:640px){
    .autofirst-div{
        display: none;
    }
    .autofirst-title{
        display: none;
    }
}

本文核心代码来源于网络,这里至简单记录了本博实现该功能的方式,其他主题实现方式类似,大家参照核心代码修改调整即可。

蝈蝈下载面板

恭喜,此资源为免费资源,请先
注意:本站资源多为网络收集,如涉及版权问题请及时与站长联系,我们会在第一时间内与您协商解决。如非特殊说明,本站所有资源解压密码均为:blog.quietguoguo.com。
赞(3) 我要打赏
蝈蝈提醒:转载请注明出处哦>>>蝈蝈要安静 » DUX主题添加首页评论自动排第一功能
分享到: 更多 (0)

评论 7

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #4

    要是能将这个和月排行那个给合并成两列样式的就好了

    amiisk   | Windows XP | Chrome 63.0.3239.132 | 6天前回复
  2. #3

    这个功能不错,支持下。

    美拉时代   | Windows NT | Chrome 63.0.3239.132 | 1周前 (11-12)回复
  3. #2

    不错,蝈蝈为啥不搞一个QQ登陆呢,注册登录好麻烦啊

    66666   | Windows NT | Chrome 63.0.3239.132 | 2周前 (11-07)回复
    • @ 66666 之前官方说要出来着,结果一直也没出。

      蝈蝈要安静     | Windows NT | Chrome 63.0.3239.132 | 2周前 (11-08)回复
      • @ 蝈蝈要安静 现在都出dux5.2也没,我有代码就是不知道登录框如何调用

        66666   | Windows NT | Chrome 63.0.3239.132 | 2周前 (11-08)回复
  4. #1

    这个功能是啥意思。。。

    降温资源网   | Windows NT | Chrome 63.0.3239.132 | 2周前 (11-07)回复

博客文章有用,赏博主一包辣条~~~

支付宝扫一扫打赏

微信扫一扫打赏