Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać najnowszy skomentowany post nad nowym przesłanym postem w Wordpress?

Wypróbuj działa idealnie dla mnie, co robi zapytanie pobierz wszystkie posty z left jon z comments tabela, więc jeśli post ma komentarz je=n, ma również comment_date jeśli nie ma komentarzy do posta, to w zestawie wyników będzie null więc połączyłem comment_date z post_date więc który post ma większą datę (dla comment_date lub post_date) będzie pierwszy i tak dalej

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

Aby wyświetlić posty, musisz najpierw uzyskać wyniki, definiując zmienną globalną WP dla interakcji z bazą danych, 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 ?>

Mam nadzieję, że tego właśnie szukałeś




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pobrać ostatni rekord w tabeli bazy danych MySQL przy użyciu PHP?

  2. Odpytywanie bazy danych MySQL

  3. Inżynieria wsteczna bazy danych MySQL przy użyciu MySQL Workbench

  4. Nie można połączyć się z MySQL za pomocą Sequelize

  5. PHP PDO:Jak radzić sobie z bindValue() i zastrzeżonymi słowami kluczowymi?