✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Wie erstelle ich eine WordPress-Seite, um alle Kommentare aufzulisten?

22

Ich habe diese Seite und diese Seite und diese Seite erstellt, um alle Kommentare Seite für Seite anzuzeigen. Damit Sie alle geposteten Kommentare nach Zeitachse sortiert verfolgen können (neueste zuerst).

Zuerst müssen Sie eine Seite erstellen und den folgenden Inhalt einfügen (der es ermöglicht, eine PHP-Quelldatei in eine WordPress-Seite/einen Post einzufügen):

[ include ]list-of-comments.php[/ include ]

Erstellen Sie dann ein PHP, das den folgenden Quellcode enthält:

<php
// Author: <a class="vglnk" target="_blank" href="https://helloacm.com/how-to-create-a-wordpress-page-to-list-all-comments/" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/</span><span>how</span><span>-</span><span>to</span><span>-</span><span>create</span><span>-</span><span>a</span><span>-</span><span>wordpress</span><span>-</span><span>page</span><span>-</span><span>to</span><span>-</span><span>list</span><span>-</span><span>all</span><span>-</span><span>comments</span><span>/</span></a>
  global $wpdb;
  
  $query = "
    select 
        count(1) 
    from 
        `wp_comments`,`wp_posts` 
    where 
        `wp_comments`.`comment_approved` = 1 and 
        `wp_comments`.`comment_post_ID` = `wp_posts`.`ID` and 
        `wp_posts`.`post_status` = 'publish'
  ";
  $total = $wpdb->get_var($query);
  
  $per = 25; // default comments per page
  $page = get_query_var('page');
  if (!$page) {
    $page = 1;
  }
  
  $totalpages = ceil($total / $per);
  if ($page > $totalpages) {
    $page = 1;
  }
  
  $lowerbound = ($page - 1) * $per;
  $upperbound = $lowerbound + $per;
  $lmt=" limit ". $lowerbound. ",". $per;
  
  $query = "select 
    `comment_post_ID`,
    `comment_author`,
    `comment_author_email`,
    `comment_author_url`,
    `comment_date_gmt`,
    `comment_content`,
    `post_title`,
    `post_name`  
   from 
    `wp_comments`,`wp_posts` 
   where 
    `wp_comments`.`comment_approved` = 1 and 
    `wp_comments`.`comment_post_ID` = `wp_posts`.`ID` and 
    `wp_posts`.`post_status` = 'publish' 
   order by 
    `comment_ID` desc $lmt";
  
  $result = $wpdb->get_results($query);
  
  echo "Total <B>$total</B> Comments ($page/$totalpages Pages) - ";  
  if ($page > 1) {
    echo "<a href='?page=".($page-1)."'>Newer Comments</a> - ";
  }
  if ($page < $totalpages) {
    echo "<a href='?page=".($page+1)."'>Older Comments</a>";
  }
  
  echo "<BR/><BR/>";  
  if ($result) {
    $i = $lowerbound + 1;
    foreach ($result as $comment) {
      $created_at = $comment->comment_date_gmt;
      $text = strip_tags($comment->comment_content, "<p><br><div><img><span><pre><video><audio>");
      $author = $comment->comment_author;
      $email = $comment->comment_author_email;
      $url = $comment->comment_author_url;
      $post_id = $comment->comment_post_ID;
      $post_title = $comment->post_title;
      $post_name = $comment->post_name;
      echo "<B>$i</B>. <i>$created_at</i> <a rel=nofollow target=_blank href='$url'>$author</a> Comments on <a href='<a class="vglnk" target="_blank" href="https://helloacm.com/$post_name/" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/$</span><span>post</span><span>_</span><span>name</span><span>/</span></a>'>$post_title</a>: <BR/><div>$text</div>";
      $i++;
      echo "<BR/><BR/>";              
    }
  }  
  
  if ($page < $totalpages) {
    echo "<a href='?page=".($page+1)."'>Older Comments</a> - ";
  }
  if ($page > 1) {
    echo "<a href='?page=".($page-1)."'>Newer Comments</a>";
  }

Dann benötigen Sie ein WordPress-Plugin, z. B. Simple PHP Include, um die PHP-Datei in eine Seite einzubinden. Stellen Sie sicher, dass Sie den Cache der Kommentarseite löschen. Pro Seite werden standardmäßig 25 Kommentare angezeigt, aber Sie können diese Variable einfach anpassen.

Sie müssen auch die richtigen bevorzugten URLs für den Beitrag überprüfen und festlegen. In meinem Fall hat die URL das Format /post_name.

Das zugrunde liegende SQL**wp_comments** besteht lediglich darin, die Seite und so zu kombinieren **wp_posts**, dass beim Auflisten der Kommentare nur die genehmigten Kommentare in absteigender Zeitreihenfolge (die neuesten Kommentare zuerst aufgeführt) mit dem Titel der Beiträge angezeigt werden.

Aufnahmequelle: helloacm.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen