วิธีการแสดงแบบสอบถาม SQL ที่ทำงานในแบบสอบถาม?


104

ฉันเจอฟังก์ชันก่อนที่จะแสดงรหัส SQL ที่ถูกต้องที่ใช้ ยกตัวอย่างเช่นในวง แต่จำไม่ได้

ใครช่วยบอกฟังก์ชั่นนั้นได้บ้าง?

คำตอบ:


137

สวัสดี@Keith Donegan:

หากฉันเข้าใจคำถามของคุณถูกต้องฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา?

<?php echo $GLOBALS['wp_query']->request; ?>

$wp_queryเป็นตัวแปรทั่วโลกที่มีแบบสอบถามปัจจุบันที่ทำงานโดยวง หากคุณเรียกใช้โค้ดข้างต้นได้ตลอดเวลาในขณะที่ลูปยังคงทำงานอยู่หรือแม้กระทั่งหลังจากลูปมันควรให้ SQL จากลูป เพียงให้แน่ใจว่าคุณตรวจสอบก่อนที่จะปล่อยให้สิ่งอื่นทำงานที่ใช้query_posts()อีกครั้ง


วิธีการได้รับคำสั่งของ$wpdb? $GLOBALS['wpdb']->requestไม่ทำงาน
mpsbhat

1
ทำงานได้แม้ในแบบสอบถามแบบกำหนดเอง$my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web

58

หากคุณเรียกใช้แบบสอบถามโดยพิจารณาจากWP_Queryสิ่งนี้:

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";

21

ดูคำตอบนี้: ชุดของรหัสที่ดีที่สุดสำหรับไฟล์ functions.php ของคุณ

จากนั้นเพิ่ม? debug = sql ลงใน WP URL ใด ๆ แล้วมันจะแสดงรายการคำสั่งทั้งหมดที่ถูกเรียกใช้ (และใช่มันน่ากลัว ... )


21

หากคุณสนใจลูปเท่านั้นนี่คือสิ่งที่ฉันมักจะใช้:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.