Kuidas luua WordPressi leht, et loetleda kõik kommentaarid?
Olen loonud selle lehe ja selle lehe ja selle lehe, et kuvada kõik kommentaarid lehekülgede kaupa. Et saaksite jälgida kõiki postitatud kommentaare, mis on sorteeritud ajaskaala järgi (uusimad enne).
Esiteks peate looma lehe ja lisama järgmise sisu (mis võimaldab lisada PHP-i lähtefaili WordPressi lehele/postitusse):
[ include ]list-of-comments.php[/ include ]
Seejärel looge PHP, mis sisaldab järgmist lähtekoodi:
<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>";
}
Seejärel vajate PHP-faili lehele kaasamiseks WordPressi pistikprogrammi, nt Simple PHP Include . Tühjendage kindlasti kommentaarilehe vahemälu. Lehekülje kohta kuvatakse vaikekommentaari 25, kuid saate seda muutujat hõlpsasti kohandada.
Samuti peate kontrollima ja määrama postituse jaoks õiged eelistatud URL-id, minu puhul on URL vormingus /postituse_nimi.
Aluseks olev SQL on lihtsalt lehe **wp_comments**ja kombineerimine **wp_posts**nii, et kommentaaride loetlemisel kuvatakse ainult heakskiidetud kommentaare ajaliselt kahanevas järjekorras (kõigepealt on loetletud uusimad kommentaarid) koos postituste pealkirjadega.