sql >> Databáze >  >> RDS >> Mysql

Jak dostat nejnovější komentovaný příspěvek nad nově odeslaný příspěvek ve Wordpressu?

Vyzkoušejte to funguje perfektně pro mě, co to dělá dotaz získejte všechny příspěvky s left jon s comments tabulka, takže když má příspěvek komentář them=n, má také comment_date pokud k příspěvku nejsou přidány žádné komentáře, pak v sadě výsledků bude null takže jsem sloučil comment_date s post_date takže který příspěvek má větší datum (pro comment_date nebo post_date), bude první a tak dále

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

Pro zobrazení příspěvků musíte nejprve získat výsledky definováním globální proměnné WP pro interakci s databází, tj. $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 ?>

Doufám, že to je to, co jste hledali




  1. Rozdíl mezi sys.views, sys.system_views a sys.all_views na serveru SQL Server

  2. MariaDB LCASE() Vysvětleno

  3. Hlášení dat o výkonu SQLDIAG pomocí nástroje RML Utilities Tool | Odstraňování problémů s výkonem serveru SQL -7

  4. Poškození databáze