✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come creare una pagina WordPress per elencare tutti i commenti?

21

Ho creato questa pagina e questa pagina e questa pagina per mostrare tutti i commenti pagina per pagina. In modo da poter tenere traccia di tutti i commenti pubblicati ordinati per sequenza temporale (prima i più recenti).

Innanzitutto, dovrai creare una pagina e inserire il seguente contenuto (che consente di includere un file sorgente PHP in una pagina/post di wordpress):

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

Quindi crea un PHP contenente il seguente codice sorgente:

<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>";
  }

Quindi, avrai bisogno di un plugin per wordpress, ad esempio Simple PHP Include, per includere il file PHP in una pagina. Assicurati di svuotare la cache della pagina dei commenti. I commenti predefiniti mostrati per pagina sono 25 ma puoi personalizzare facilmente questa variabile.

Devi anche controllare e impostare gli URL preferibili corretti per il post, nel mio caso, l’URL è nel formato /post_name.

L’ SQL sottostante è solo quello di combinare la pagina **wp_comments**e **wp_posts**in modo che quando elenca i commenti mostri solo i commenti approvati nell’ordine discendente del tempo (i commenti più recenti elencati per primi) con il titolo dei post.

Fonte di registrazione: helloacm.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More