代码实现WordPress评论列表显示楼层

代码实现WordPress评论列表显示楼层,第1张

概述大前端DUX主题相信很多博主都了解,是国内程序员开发的一款新闻资讯类主题,我们曾经也使用了一段时间,DUX主题设计简约响应急速,深受很多建站博主好评,

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

大前端 DUX 主题相信很多博主都了解,是国内程序员开发的一款新闻资讯类主题,我们曾经也使用了一段时间,DUX 主题设计简约响应急速,深受很多建站博主好评,前几天有人问我 DUX 评论列表后面的楼层是怎么实现的,这东西根本不是我写的好吧。用过大前端 DUX 主题的站长应该都知道,大前端 dux 主题的评论列表就有楼层计数功能,拿过来用不就行了?大家也学习下大前端的写法,毕竟人家可是国内的大佬,值得学习。



该文件位于 dux 主题目录下的 modules 文件夹中,名字叫做 mo_comments_List.PHP,下面是源码。

/**

 * [mo_comments_List description]

 * @param [type] $comment [description]

 * @param [type] $args [description]

 * @param [type] $depth [description]

 * @return [type] [description]

 */

function mo_comments_List($comment,$args,$depth) {

$GLOBALS['comment'] = $comment;

 

global $commentcount,$wpdb,$post;

if(!$commentcount) { //初始化楼层计数器

 

$page = get_query_var('cpage');//获取当前评论列表页码

$cpp = get_option('comments_per_page');//获取每页评论显示数量

$pcs = get_option('page_comments');//分页开关

 

$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND !comment_parent");

$cnt = count($comments);//获取主评论总数量

 

if ( get_option('comment_order') === 'desc' ) { //倒序

if (!$pcs || ceil($cnt / $cpp) == 1 || ($page > 1 && $page == ceil($cnt / $cpp))) {

$commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数

} else {

$commentcount = $cpp * $page + 1;

}

}else{ //顺序

if( !$pcs ){

$commentcount = 0;

}else{

$page = $page-1;

$commentcount = $cpp * $page;

}

}

}

 

echo '<li '; comment_class(); echo ' ID="comment-'.get_comment_ID().'">';

if(!$parent_ID = $comment->comment_parent ) {

echo '<span >#'. (get_option('comment_order') === 'desc'?--$commentcount:++$commentcount) .'</span>';

}

echo '<div >';

echo _get_the_avatar($user_ID=$comment->user_ID,$user_email=$comment->comment_author_email);

echo '</div>';

echo '<div ID="div-comment-'.get_comment_ID().'">';

comment_text();

if ($comment->comment_approved == '0'){

echo '<span >待审核</span>';

}

echo '<div ><span >'.get_comment_author_link().'</span>';

echo _get_time_ago($comment->comment_date);

if ($comment->comment_approved !== '0'){

$replyText = get_comment_reply_link( array_merge( $args,array('add_below' => 'div-comment','depth' => $depth,'max_depth' => $args['max_depth'] ) ) );

// echo str_replace(' href',' href="JavaScript:;" data-href',$replyText );

if( strstr($replyText,'reply-login') ){

echo preg_replace('# href="[sS]*?"#',' href="JavaScript:;"',$replyText );

}else{

echo preg_replace('# href=[sS]*? onclick=#',' href="JavaScript:;" onclick=',$replyText );

}

}

echo '</div>';

echo '</div>';

}

使用方法一

像 dux 一样,在主题目录下建立 modules 文件夹,然后将上面的代码保存在该文件夹中,再利用如下代码加载到 wordpress 中。

function _moloader($name = '',$apply = true) {

if (!function_exists($name)) {

include get_stylesheet_directory() . '/modules/' . $name . '.PHP';

}

 

if ($apply && function_exists($name)) {

$name();

}

}

加载方式多种多样,直接使用 include 引用也是可以的。然后通过 _moloader(‘mo_comments_List’,false);来加载上面的代码,最后就是使用了。wordpress 提供了评论列表加载方法 wp_List_comments 函数,该函数可以携带回调函数 callback。

wp_List_comments('type=comment&callback=mo_comments_List');

上述代码的意思是取出评论数据,并交给回调函数 mo_comments_List 来处理,mo_comments_List 就是上面我们的楼层计数方法,其中包含了输出评论的内容。

使用方法二

直接将上面的代码写在 functions.PHP 文件中,返回在文章页适当位置使用下面代码来调用。

wp_List_comments('type=comment&callback=mo_comments_List');

是不是觉得方法二简单很多呢?确实如此,只要你不嫌弃你的 functions 文件太大,随便你哦。以上就是 DUX 主题同款 wordpress 评论列表显示楼层实现代码方法,希望您能学到有用的东西,当然如果你有更好的方法不妨与我们交流。

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的代码实现WordPress评论列表显示楼层全部内容,希望文章能够帮你解决代码实现WordPress评论列表显示楼层所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/1008058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存