sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man det seneste kommenterede indlæg over nyt indsendt indlæg i Wordpress?

Prøv det virker perfekt for mig, hvad det gør forespørgsel få alle indlæg med en left jon med comments tabel, så når et indlæg har kommentarer dem=n har det også comment_date hvis der ikke er skrevet kommentarer til indlægget, vil det i resultatsættet være null så jeg har flettet comment_date med post_date så hvilket indlæg har den største dato (for comment_date eller post_date) vil det først og så videre

SELECT p.*,
(CASE WHEN c.comment_date IS NULL THEN p.`post_date` ELSE c.comment_date END) order_column
 FROM `wp_posts` p
LEFT  JOIN `wp_comments` c  ON (p.ID = c.`comment_post_ID` ) WHERE p.post_type='post' AND p.post_status='publish'
GROUP BY p.ID
 ORDER BY order_column   DESC

For at vise indlæggene skal du først få resultaterne ved at definere WP's globale variabel for databaseinteraktionen, dvs. $wpdb

<?php
global $wpdb;
$results = $wpdb->get_results("    SELECT p.*,
    (CASE WHEN c.comment_date IS NULL THEN p.`post_date` ELSE c.comment_date END) order_column
     FROM `wp_posts` p
    LEFT  JOIN `wp_comments` c  ON (p.ID = c.`comment_post_ID` ) WHERE p.post_type='post' AND p.post_status='publish'
    GROUP BY p.ID
     ORDER BY order_column   DESC"); 
?>

HTML

<?php foreach($results as $result){

<h1><?php echo $result->post_title;?></h1>
<div> <?php echo $result->post_content;?> </div>
// and so on the fields of wp_posts
<?php } // loop end ?>

Håber det var det, du ledte efter




  1. Android:Hvordan beder man en markør om at opdatere ListView efter sletning af databaserækken?

  2. Validering af dine PostgreSQL-sikkerhedskopier på Docker

  3. SQLAlchemy Reflection:Hvordan forespørger jeg data fra specifikke kolonner?

  4. Hvad er den bedste måde at oprette og udfylde en taltabel på?