Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

वर्डप्रेस में नई सबमिट की गई पोस्ट के ऊपर सबसे हालिया टिप्पणी पोस्ट कैसे प्राप्त करें?

इसे आज़माएं मेरे लिए एकदम सही काम करता है यह क्या कर रहा है क्वेरी सभी पदों को left jon के साथ प्राप्त करें comments . के साथ तालिका इसलिए जब किसी पोस्ट ने उन्हें टिप्पणी की है=n इसमें comment_date भी है यदि पोस्ट पर कोई टिप्पणी पोस्ट नहीं की जाती है तो परिणाम सेट में यह null होगा इसलिए मैंने comment_date को मर्ज कर दिया है post_date . के साथ तो किस पोस्ट की तारीख अधिक है (टिप्पणी_डेट या पोस्ट_डेट के लिए) यह पहले होगी और इसी तरह

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

पोस्ट प्रदर्शित करने के लिए आपको पहले डेटाबेस इंटरैक्शन के लिए WP के वैश्विक चर को परिभाषित करके परिणाम प्राप्त करना होगा यानी $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"); 
?>

एचटीएमएल

<?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 ?>

आशा है कि आप यही खोज रहे थे




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LIKE ऑपरेटर द्वारा MySQL इंजेक्शन

  2. त्रुटि:विधि या संचालन लागू नहीं किया गया है। MYSQL डेटाबेस को मचान करते समय

  3. एसक्यूएल:विभिन्न तालिकाओं से दो गणनाओं की तुलना करना

  4. डेटाबेस स्तर पर ही क्वेरी के माध्यम से अनक्रमबद्ध करें

  5. रिकॉर्ड एक से अधिक PHP होने पर सभी कक्षों में सम्मिलित करें