✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Как создать страницу WordPress для списка всех комментариев?

36

Я создал эту страницу, эту страницу и эту страницу, чтобы показывать все комментарии страница за страницей. Чтобы вы могли отслеживать все опубликованные комментарии, отсортированные по временной шкале (сначала самые новые).

Во-первых, вам нужно будет создать страницу и поместить следующий контент (который позволяет включить исходный файл PHP на страницу/публикацию WordPress):

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

Затем создайте PHP, содержащий следующий исходный код:

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

Затем вам понадобится плагин WordPress, например, Simple PHP Include, чтобы включить файл PHP на страницу. Убедитесь, что вы очистили кеш страницы комментариев. Количество комментариев по умолчанию, отображаемых на странице, равно 25, но вы можете легко настроить эту переменную.

Вам также необходимо проверить и установить правильные предпочтительные URL-адреса для публикации, в моем случае URL-адрес имеет формат /post_name.

Базовый SQL просто объединяет страницу **wp_comments**и **wp_posts**так, чтобы при перечислении комментариев он отображал только одобренные комментарии в порядке убывания времени (самые новые комментарии перечислены первыми) с заголовком сообщений.

Источник записи: helloacm.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее