programing

Wordpress에서 만든 모든 데이터베이스 쿼리를 표시하는 방법

telecom 2023. 3. 1. 09:30
반응형

Wordpress에서 만든 모든 데이터베이스 쿼리를 표시하는 방법

여기서 설명한 것과 유사한 방법으로 페이지를 로드하면 Wordpress에서 총 쿼리 수를 확인할 수 있습니다.

이제 페이지가 로드될 때 수행되는 모든 데이터베이스 쿼리를 표시합니다.이를 통해 플러그인 및 테마 스크립트를 모두 제거할 필요 없이 가장 큰 자원 보유자가 누구인지 확인할 수 있습니다.

Wordpress에서 만든 모든 데이터베이스 쿼리를 표시하는 가장 좋은 방법은 무엇입니까?

추가한다면define('SAVEQUERIES', true)그런 다음 테마에 다음을 추가하여 현재 페이지에 대해 작성된 모든 쿼리를 나열할 수 있습니다.

if (current_user_can('administrator')){
    global $wpdb;
    echo "<pre>";
    print_r($wpdb->queries);
    echo "</pre>";
}

상세한 것에 대하여는, 다음의 메뉴얼을 참조해 주세요.http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis

또는 posts_request에 접속할 수 있습니다.coe를 함수에 넣을 수 있습니다.php 등

add_filter('posts_request','debug_post_request'); // debugging sql query of a post

function debug_post_request($sql_text) {

   $GLOBALS['debugku'] = $sql_text; //intercept and store the sql<br/>
   return $sql_text; 

}

테마 바닥글에서 print_r을 다음과 같이 사용할 수 있습니다.

print_r($GLOBALS['debugku']);

Query Monitor를 사용합니다.

다음과 같은 다양한 컨텍스트에서 쿼리를 필터링할 수 있는 무료 오픈 소스 플러그인입니다.

  • 호출된 플러그인
  • 가장 오랜 시간이 걸린 쿼리
  • 중복된 쿼리
  • 선택 / 업데이트 / 삽입 / 삭제로 필터링할 수 있습니다.

그 중에서도...

Wordpress가 실행 중인 쿼리 확인 방법

페이지 하단에 쿼리/유효시간 코드를 추가합니다.

/**
 * show all sql at footer if it defined in wp-config.php:
 * define('SAVEQUERIES', true);
 */
function plg_name_show_debug_queries()
{
    if (defined('SAVEQUERIES') && SAVEQUERIES) {
        global $wpdb;
        if (is_array($wpdb->queries)) foreach ($wpdb->queries as $key => $q) {
            list($query, $elapsed, $debug) = $q;
            $time = number_format(($elapsed * 1000), 3);
            $count = $key + 1;
            $total_time += $elapsed;
            echo "
            <div style=\"position: relative; z-index: 9999    ; background: black; color: white; padding:10px\">
                $count - Query: $query <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time: $time ms
            </div>";
        }
        echo "
        <div style=\"position: relative; z-index: 9999    ; background: black; color: white; padding:10px\">
            Total Queries: " . count($wpdb->queries) . "<br>Total Time: " . number_format(($total_time * 1000), 3) . " ms
        </div>";
    }
}
add_action('admin_footer', 'plg_name_show_debug_queries', PHP_INT_MAX);
add_action('wp_footer', 'plg_name_show_debug_queries', PHP_INT_MAX);

언급URL : https://stackoverflow.com/questions/2473079/how-to-display-all-database-queries-made-by-wordpress

반응형