Heim > Backend-Entwicklung > PHP-Tutorial > Fügen Sie den Kommentaren in WordPress eine Etagennummer hinzu

Fügen Sie den Kommentaren in WordPress eine Etagennummer hinzu

*文
Freigeben: 2023-03-18 17:04:01
Original
1770 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich PHP-Codebeispiele zum Hinzufügen von Etagennummern zu Kommentaren in WordPress vorgestellt. Dieser Artikel bezieht sich nur auf die Hauptkommentare und nicht auf die kaskadierenden Kommentare im Gebäude. Ich hoffe, es hilft allen.

Kürzlich habe ich plötzlich festgestellt, dass es ein Problem mit der Kommentarebene des Blogs gibt. Es wurde so eingestellt, dass „neue Kommentare oben auf jeder Seite angezeigt werden“, also die sogenannte Anzeige von Kommentaren in umgekehrter Reihenfolge, aber das Theme unterstützt nur aufeinanderfolgende Kommentaretagen, sodass die Etage und die Etagennummer nicht übereinstimmen. Nach der Suche habe ich den Implementierungscode auf zww.me gefunden, aber er funktioniert nicht richtig, nachdem er im Blog platziert wurde. Wenn die Seitenanzeige beispielsweise auf 25 Elemente beschränkt ist, wird die 25. Etage auch angezeigt, wenn der Artikel nur eines enthält Kommentar. Nach einigem Herumtüfteln habe ich es geschafft und eine Aufzeichnung als Referenz für alle erstellt.

Suchen Sie $GLOBALS['comment'] = $comment in der Theme-Datei „functions.php“ und fügen Sie danach den folgenden Code hinzu:


/* 主评论计数器 */
 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;;
 }
 }
Nach dem Login kopieren


Fügen Sie dann an der entsprechenden Stelle den folgenden Code ein, um die Etagennummer auszugeben


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


Ändern Der folgende Code sollte so aussehen (am Beispiel des neuesten offiziellen wp_list_comments()-Callback-Funktionscodes):


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 ?>

Nach dem Login kopieren


Verwandte Empfehlungen:

PHP konvertiert einen Verzeichnisbaum entsprechend dem Pfadarray

So geht's in WordPress Allgemeine Einstellungen vornehmen

Ein praktisches Tutorial zur Verwendung von WordPress zur Entwicklung von WeChat-Miniprogrammen

Das obige ist der detaillierte Inhalt vonFügen Sie den Kommentaren in WordPress eine Etagennummer hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage