或者说,同事. 需要帮她打印出来sql 调试输出到页面sql

在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug

在插件文件夹 wordpress/wp-content/plugins/ 新建一个文件叫bt_debug_sql.php

<?php
/*
Plugin Name:    Bt Debug Sql.
Plugin URI:     http://www.btroot.com
Description:    Show the sql at the frontpage.
Author:         rainysia
Version:        1.0
Author URI:     http://www.btroot.org
 */ /**
 * Show debug Sql.
 *
 * @return void
 */
add_action('init', 'bt_debug_sql'); function bt_debug_sql() {
    if (!defined('SAVEQUERIES')) {
        define('SAVEQUERIES', true);
    }
    if (has_action('wp_footer')) {
        add_action('wp_footer', 'snx_show_sql');
    }
}
// show sql
function snx_show_sql(){
    if (isset($_GET['debug']) && $_GET['debug'] == true) {
        global $wpdb;
        //echo '<pre>'; 
        //print_r ($wpdb->queries);
        $all_debug_queries = $wpdb->queries;
        echo "<table>";
        if (isset($all_debug_queries) && count($all_debug_queries) > 0) {
            $total_time_cost = 0;
            $large_time_cost = 0;
            $large_sql_query = '';
            $large_sql_num = 0;
            $debug_file = false;
            if (isset($_GET['debug_file']) && $_GET['debug_file'] == true) {
                $debug_file = true;
            }
            echo '<tr style="font-weight:bold;"><td>Num</td><td>Times</td><td>SQL</td>';
            echo $debug_file ? '<td>Include files</td><tr>' : '';
            foreach ($all_debug_queries as $k => $v) {
                // $v[0] is sql, $v[1] is time, $v[2] is relative file.
                $total_time_cost += $v[1];
                if ($large_time_cost <= $v[1]) {
                    $large_time_cost = $v[1];
                    $large_sql_query = $v[0];
                    $large_sql_num = $k + 1;
                }
                if (($k + 1) % 2 == 1) {
                    echo '<tr style="background-color:#8F9196;color:rgb(202, 227, 253);"><td style="font-weight:bold;text-align:center;">'.($k + 1).'</td>';
                } else {
                    echo '<tr><td style="font-weight:bold;text-align:center;">'.($k + 1).'</td>';
                }
                echo '<td style="text-align:left;">'.sprintf("%.10f", $v[1]).'</td>';
                echo '<td style="padding-left:6px;text-align:left;">'.$v[0].'</td>';
                echo $debug_file ? '<td style="text-align:left;">'.$v[2].'</td>' : '';
                echo '</tr>';
            }
        }
        echo '<div style="text-align:left;">';
        echo '<div style="widht:100%;height:3px;margin:10px 0;background:rgba(56, 83, 129, 0.85)!important; -moz-box-shadow:0px 0px 1px #c3c3c3; -webkit-box-shadow:0px 0px 1px #c3c3c3; -box-shadow:0px 0px 1px #c3c3c3;"></div>';
        echo '<div>The whole sql queries cost:<span style="color:red;"> '.$total_time_cost.'s</span></div>';
        echo 'The large sql is No.<span style="color:red;">'.$large_sql_num.'</span>  cost: <span style="color:red;">'.$large_time_cost.'s</span><br />  <span style="color:rgb(194, 76, 95);background-color:rgb(208, 210, 218);">'.$large_sql_query.'</span><br />';
        echo '<div style="widht:90%;height:3px;margin:10px 0px;background:rgba(128, 143, 158, 0.85)!important; -moz-box-shadow:0px 0px 1px #c3c3c3; -webkit-box-shadow:0px 0px 1px #c3c3c3; -box-shadow:0px 0px 1px #c3c3c3;"></div>';
        echo "</table>";
        echo '</div>';
    }
}

这里的作用仅仅是为了让wordpress的SAVEQUERIES 静态变量设为true, 所以你也能够不这样, 直接在wp-config.php 配置文件中面加一句

define('SAVEQUERIES', true);

效果是一样.

接着在/wp-content/theme/你的主题/footer.php 最后一个</div> 前加上以下的代码来调用一次wp_footer();保存就可以.

<?php wp_footer();?>

保存后就能够了. 然后去启用插件, 使用的时候, 在当前页面的url后跟?debug=true 能够开启debug sql模式, 加debug_file=true会显示include的关联文件.

http://test.com/solutions/vwideformat/test/?debug=1 和

http://test.com/solutions/vwideformat/test/?

debug=1&debug_file=1

效果例如以下

版权声明:本文博客原创文章。博客,未经同意,不得转载。

[改变自己wordpress.2]给wordpress加上简单debug sql调试.的更多相关文章

  1. [改变自己wordpress.2]至wordpress再加上简单的debug sql调试.

    或者说,同事. 需要帮助她打印出来sql 调试输出到页面sql 在这里,我们使用插件或一个的方式来启动配置文件wordpress的debug 在插件文件夹 wordpress/wp-content/p ...

  2. [20190328]简单探究sql语句相关mutexes.txt

    [20190328]简单探究sql语句相关mutexes.txt --//摘要:http://www.askmaclean.com/archives/understanding-oracle-mute ...

  3. 最简单删除SQL Server中所有数据的方法

     最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...

  4. 实验吧_简单的sql注入_1、2、3

    简单的sql注入1 看着这个简单的界面,一时间没有特别好的思路,先输入一个1',发生了报错 初步猜测这是一个字符型的注入,他将我们输入的语句直接当成sql语句执行了,按题目的意思后面肯定过滤了很多注入 ...

  5. 【实验吧】CTF_Web_简单的SQL注入之3

    实验吧第二题 who are you? 很有意思,过两天好好分析写一下.简单的SQL注入之3也很有意思,适合做手工练习,详细分析见下. http://ctf5.shiyanbar.com/web/in ...

  6. 【实验吧】CTF_Web_简单的SQL注入之1

    题目链接:http://ctf5.shiyanbar.com/423/web/ 简单的SQL注入之1,比2,3都简单一些.利用2 的查询语句也可以实现:1'/**/union/**/select/** ...

  7. 四种简单的sql语句(增删改查语句)

    四种简单的sql语句(增删改查语句) 一.插入语句 insert into [table] ([column],[column],[column]) values(?,?,?) 二.删除语句 dele ...

  8. 简单了解SQL(结构化查询语言)

    简单了解SQL(结构化查询语言) 年10月,美国国家标准学会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际 ...

  9. tp5 r3 一个简单的SQL语句调试实例

    tp5 r3 一个简单的SQL语句调试实例先看效果核心代码 public function index() { if (IS_AJAX && session("uid&quo ...

随机推荐

  1. Ipsec transport mode and turnnel mode

     隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中.通常,隧道模式应用在两个安全网关之间的通讯. 传输(t ...

  2. ubuntu Linux 安装和首次使用

    1.ubuntu Linux 安装后切换到root账户,在默认情况下,系统安装过程中需要创建一个用户,切换到root账号命令如下:$ sudo -s -H输入 当前账户密码就可以切换到root.2.u ...

  3. 读 Working with forms 一些心得

    Working with forms About this document This document provides an introduction to Django’s form handl ...

  4. 有向无环图(DAG)的最小路径覆盖

    DAG的最小路径覆盖 定义:在一个有向图中,找出最少的路径,使得这些路径经过了所有的点. 最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖. 最小不相交路径覆盖:每一条路径经过的顶点各不相同.如 ...

  5. java中HashMap在多线程环境下引起CPU100%的问题解决(转)

    最近项目中出现了Tomcat占用CPU100%的情况,原以为是代码中出现死循环,后台使用jstack做了dump,发现是系统中不合理使用HashMap导致出现了死循环(注意不是死锁). 产生这个死循环 ...

  6. HttpClient 网络优化

    HttpClient 网络优化 尽管Android官网推荐在2.3及后续版本中使用HttpURLConnection作为网络开发首选类,但在连接管理和线程安全方面,HttpClient还是具有很大优势 ...

  7. Lichee(两) 在sun4i_crane该平台下编译

    让我们先来回顾一下编译命令 $ cd workdir/lichee $ ./build.sh -p sun4i_crane -k 3.0  lichee文件夹下的build.sh #!/bin/bas ...

  8. SOHO路由器的静态路由的不同

    网络拓扑如下,其中RA与RB皆为TP-LINK家用路由器 最终在TP-LINK官网的官网上找到这么一段话 静态路由是在路由器中手工设置的固定的路由条目.我司路由器静态路由是基于ICMP重定向原理,与其 ...

  9. 【ArcGIS 10.2新特性】ArcGIS 10.2 for Desktop 新特性(一)

    ArcGIS 10.2 for Desktop是在10.1的成功基础上进行的改进,它的改进包括:性能提升.附加的安全性.40多个新的分析工具.3D功能提高.栅格增强.新的地理数据管理能力以及其它更多的 ...

  10. 【译】使用微软企业库5.0进行WCF服务边界上的异常保护

    在Windows Communication Foundation (WCF)中,为了阻止服务的实现细节从服务的安全边界泄露,未知的异常不应该被发送至客服端.在WCF配置中将<serviceDe ...