>  기사  >  백엔드 개발  >  WordPress의 댓글에 층수 추가

WordPress의 댓글에 층수 추가

*文
*文원래의
2017-12-27 18:02:111712검색

이 글은 주로 워드프레스 댓글에 층수를 추가하는 PHP 코드 예제를 소개합니다. 이 글은 건물의 계단식 댓글이 아닌 주요 댓글에만 적용됩니다. 그것이 모두에게 도움이 되기를 바랍니다.

최근에 갑자기 블로그 댓글창에 문제가 있다는 것을 발견했습니다. 이전 설정은 소위 댓글을 역순으로 표시하는 "각 페이지 상단에 새 댓글 표시"였습니다. 다만 테마는 순차 댓글 층수만 지원하므로 층수와 층수는 일치하지 않습니다. 검색해보니 zww.me에서 구현 코드를 찾았는데 블로그에 올려놓고 보니 제대로 동작하지 않네요. 예를 들어 페이징 표시가 25개 항목으로 제한되어 있는데, 기사가 1개만 있으면 25층도 표시됩니다. 논평. 약간의 고민 끝에 작업을 완료했고 모두가 참고할 수 있도록 녹음을 했습니다.

테마 파일 function.php에서 $GLOBALS['comment'] = $comment;를 찾아 그 뒤에 다음 코드를 추가하세요.


/* 主评论计数器 */
 global $commentcount,$wpdb, $post;
 if(!$commentcount) { //初始化楼层计数器
  if ( get_option('comment_order') === 'desc' ) { //倒序
  $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);//获取主评论总数量
  $page = get_query_var('cpage');//获取当前评论列表页码
  $cpp=get_option('comments_per_page');//获取每页评论显示数量
  if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page == ceil($cnt / $cpp))) {
   $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  } else {
   $commentcount = $cpp * $page + 1;
  }
  }else{ //顺序
  $page = get_query_var('cpage')-1;
  $cpp=get_option('comments_per_page');//获取每页评论数
  $commentcount = $cpp * $page;
  }
 }
/* 主评论计数器 end */
 if ( !$parent_id = $comment->comment_parent ) {
  $commentcountText = &#39;<p class="floor">&#39;;
  if ( get_option(&#39;comment_order&#39;) === &#39;desc&#39; ) { //倒序
  $commentcountText .= --$commentcount . &#39;楼&#39;;
  } else {
  switch ($commentcount) {
   case 0:
   $commentcountText .= &#39;<span>沙发!</span>&#39;; ++$commentcount;
   break;
   case 1:
   $commentcountText .= &#39;<span>板凳!</span>&#39;; ++$commentcount;
   break;
   case 2:
   $commentcountText .= &#39;<span>地板!</span>&#39;; ++$commentcount;
   break;
   default:
   $commentcountText .= ++$commentcount . &#39;楼&#39;;
   break;
  }
  }
  $commentcountText .= &#39;</p">&#39;;
 }
 }


그런 다음 적절한 위치에 다음 코드를 추가하여 출력하세요. 층 번호


<?php echo $commentcountText; //主评论楼层号 - by zwwooooo ?>


수정된 코드는 다음과 같아야 합니다(최신 공식 wp_list_comments() 콜백 함수 코드를 예로 사용):


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);//获取主评论总数量
  $page = get_query_var('cpage');//获取当前评论列表页码
  $cpp=get_option('comments_per_page');//获取每页评论显示数量
  if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page == ceil($cnt / $cpp))) {
   $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  } else {
   $commentcount = $cpp * $page + 1;
  }
  }else{ //顺序
  $page = get_query_var('cpage')-1;
  $cpp=get_option('comments_per_page');//获取每页评论数
  $commentcount = $cpp * $page;
  }
 }
 /* 主评论计数器 end */
 if ( !$parent_id = $comment->comment_parent ) {
  $commentcountText = '

'; if ( get_option('comment_order') === 'desc' ) { //倒序 $commentcountText .= --$commentcount . '楼'; } else { switch ($commentcount) { case 0: $commentcountText .= '沙发!'; ++$commentcount; break; case 1: $commentcountText .= '板凳!'; ++$commentcount; break; case 2: $commentcountText .= '地板!'; ++$commentcount; break; default: $commentcountText .= ++$commentcount . '楼'; break; } } $commentcountText .= ''; } } extract($args, EXTR_SKIP); if ( 'p' == $args['style'] ) { $tag = 'p'; $add_below = 'comment'; } else { $tag = 'li'; $add_below = 'p-comment'; } ?> < id="comment-">

%s says:'), get_comment_author_link()) ?>

comment_approved == '0') : ?>

$add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>

<?php echo $commentcountText; //主评论楼层号 - by zwwooooo ?>


관련 권장 사항:

PHP는 경로 배열에 따라 디렉터리 트리를 변환합니다.

워드프레스에서 일반 설정을 지정하는 방법

워드프레스를 사용하여 WeChat 미니 프로그램을 개발하는 실용적인 튜토리얼

위 내용은 WordPress의 댓글에 층수 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.