इसे आज़माएं मेरे लिए एकदम सही काम करता है यह क्या कर रहा है क्वेरी सभी पदों को 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 ?>
आशा है कि आप यही खोज रहे थे