Làm thế nào để hiển thị truy vấn SQL chạy trong truy vấn?


104

Tôi đã bắt gặp một hàm trước đó hiển thị mã SQL chính xác đã được sử dụng. Trong một vòng lặp chẳng hạn, nhưng không thể nhớ.

Ai có thể cho tôi biết chức năng đó?

Câu trả lời:


137

Xin chào @Keith Donegan:

Nếu tôi hiểu chính xác câu hỏi của bạn, tôi nghĩ đây là những gì bạn đang tìm kiếm?

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

$wp_querylà một biến toàn cục có chứa truy vấn hiện tại được chạy bởi vòng lặp. Nếu bạn chạy mã trên bất cứ lúc nào trong khi vòng lặp vẫn hoạt động hoặc thậm chí ngay sau vòng lặp, nó sẽ cung cấp cho bạn SQL từ vòng lặp. Chỉ cần chắc chắn rằng bạn kiểm tra nó trước khi để một cái gì đó chạy query_posts()lại sử dụng .


Làm thế nào để có được truy vấn của $wpdb? $GLOBALS['wpdb']->requestkhông hoạt động
mpsbhat

1
Hoạt động ngay cả trên truy vấn tùy chỉnh, $my_query = new WP_Query([ /* ...some args... */ ]);=>$my_query->request
jave.web

58

Nếu bạn đã chạy một truy vấn dựa trên WP_Query, thì đây là:

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


21

Nếu bạn chỉ quan tâm đến Loops thì đây là thứ tôi thường sử dụng:

add_filter( 'posts_request', 'dump_request' );

function dump_request( $input ) {

    var_dump($input);

    return $input;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.