{"id":3465,"date":"2025-06-11T23:23:35","date_gmt":"2025-06-11T15:23:35","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/wpcms\/wpdt\/3465.html"},"modified":"2025-06-11T23:23:35","modified_gmt":"2025-06-11T15:23:35","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8%e6%82%a8%e7%9a%84%e7%bd%91%e7%ab%99%e4%b8%8a%e6%b7%bb%e5%8a%a0-wordpress-%e6%9f%a5%e8%af%a2%e7%9b%91%e6%8e%a7%e5%b7%a5%e5%85%b7","status":"publish","type":"post","link":"https:\/\/www.zhaozhao123.cn\/wpcms\/post\/3465.html","title":{"rendered":"\u5982\u4f55\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u6dfb\u52a0 WordPress \u67e5\u8be2\u76d1\u63a7\u5de5\u5177"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<p class=\"my-0\">Bug&#32534;&#35793;&#29422;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#20026;&#20102;&#24110;&#21161;&#24744;&#20102;&#35299;&#22914;&#20309;&#22312;WordPress&#32593;&#31449;&#19978;&#28155;&#21152;&#26597;&#35810;&#30417;&#25511;&#24037;&#20855;&#65292;&#35831;&#20808;&#30830;&#20445;&#24744;&#30340;WordPress&#23433;&#35013;&#20102;WP Super Cache&#25554;&#20214;&#12290;&#36825;&#20010;&#25554;&#20214;&#21487;&#20197;&#25552;&#39640;&#32593;&#31449;&#30340;&#24615;&#33021;&#21644;&#21152;&#36733;&#36895;&#24230;&#12290;<\/p>\n<p>&#25509;&#19979;&#26469;&#65292;&#25105;&#20204;&#23558;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#26469;&#23454;&#29616;&#65306;<\/p>\n<ol>\n<li>&#30331;&#24405;&#21040;&#24744;&#30340;WordPress&#21518;&#21488;&#12290;<\/li>\n<li>&#28857;&#20987;&#24038;&#20391;&#33756;&#21333;&#20013;&#30340;&ldquo;&#25554;&#20214;&rdquo;&#12290;<\/li>\n<li>&#22312;&#25628;&#32034;&#26694;&#20013;&#36755;&#20837;&ldquo;Query Monitor&rdquo;&#65292;&#28982;&#21518;&#28857;&#20987;&#25628;&#32034;&#25353;&#38062;&#12290;<\/li>\n<li>&#25214;&#21040;&#24182;&#28857;&#20987;&ldquo;Query Monitor&rdquo;&#25554;&#20214;&#12290;<\/li>\n<li>&#23433;&#35013;&#24182;&#28608;&#27963;&#35813;&#25554;&#20214;&#12290;<\/li>\n<\/ol>\n<p>&#23436;&#25104;&#20197;&#19978;&#27493;&#39588;&#21518;&#65292;&#24744;&#23601;&#21487;&#20197;&#24320;&#22987;&#35774;&#32622;&#26597;&#35810;&#30417;&#25511;&#21151;&#33021;&#20102;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20551;&#35774;&#24744;&#24819;&#26597;&#30475;&#26368;&#36817;&#19968;&#21608;&#20869;&#35775;&#38382;&#37327;&#26368;&#22823;&#30340;&#39029;&#38754;&#65292;&#24744;&#21487;&#20197;&#32534;&#20889;&#22914;&#19979;&#30340;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#33719;&#21462;&#24403;&#21069;&#26102;&#38388;&#30340;&#19968;&#21608;&#21069;&#26085;&#26399;\n$one_week_ago = strtotime('-7 days');\n\n\/\/ &#36807;&#28388;&#20986;&#22312;&#36807;&#21435;&#19968;&#21608;&#20869;&#34987;&#35775;&#38382;&#36807;&#30340;&#39029;&#38754;\n$query_monitor_data = $wpdb-&gt;get_results(\"SELECT * FROM wp_query_monitor WHERE timestamp &gt; '\" . $one_week_ago . \"'\");\n\n\/\/ &#36755;&#20986;&#27599;&#20010;&#39029;&#38754;&#30340;&#21517;&#31216;&#21644;&#35775;&#38382;&#27425;&#25968;\nforeach ($query_monitor_data as $page) {\n    echo \"Page: \" . $page-&gt;name . \", Visits: \" . $page-&gt;visits_count . \"&lt;br&gt;\";\n}\n?&gt;<\/code><\/pre>\n<h3>&#20351;&#29992;&#27493;&#39588;&#21450;&#25928;&#26524;<\/h3>\n<ol>\n<li>&#32534;&#36753;&#22120;&#65306;&#22312;&#25991;&#31456;&#32534;&#36753;&#22120;&#20013;&#25554;&#20837;&#19978;&#36848;PHP&#20195;&#30721;&#12290;<\/li>\n<li>&#20445;&#23384;&#65306;&#28857;&#20987;&#21491;&#19978;&#35282;&#30340;&ldquo;&#26356;&#26032;&rdquo;&#25110;&ldquo;&#20445;&#23384;&rdquo;&#25353;&#38062;&#20197;&#24212;&#29992;&#26356;&#25913;&#12290;<\/li>\n<\/ol>\n<p>&#27492;&#20195;&#30721;&#20250;&#22312;&#39029;&#38754;&#24213;&#37096;&#36755;&#20986;&#36807;&#21435;&#19968;&#21608;&#20869;&#35775;&#38382;&#37327;&#26368;&#39640;&#30340;&#39029;&#38754;&#21450;&#20854;&#35775;&#38382;&#27425;&#25968;&#12290;&#36890;&#36807;&#36825;&#31181;&#26041;&#24335;&#65292;&#24744;&#21487;&#20197;&#23454;&#26102;&#36319;&#36394;&#24744;&#30340;&#32593;&#31449;&#27969;&#37327;&#24773;&#20917;&#65292;&#20174;&#32780;&#20248;&#21270;&#32593;&#31449;&#32467;&#26500;&#12289;&#20869;&#23481;&#21644;&#24067;&#23616;&#65292;&#25552;&#21319;&#29992;&#25143;&#20307;&#39564;&#12290;<\/p>\n<p>&#35831;&#27880;&#24847;&#65292;&#36825;&#21482;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65292;&#23454;&#38469;&#20351;&#29992;&#26102;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#24744;&#30340;&#20855;&#20307;&#38656;&#27714;&#35843;&#25972;&#20195;&#30721;&#36923;&#36753;&#21644;&#26597;&#35810;&#26465;&#20214;&#12290;&#24076;&#26395;&#36825;&#20123;&#20449;&#24687;&#23545;&#24744;&#26377;&#25152;&#24110;&#21161;&#65281;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;&#21069;&#30340;Bug&#35821;&#27861;&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<p class=\"my-0\">&#40657;&#26495;&#21069;&#30340;Bug&#35821;&#27861;&#35762;&#24072;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;&#24744;&#30340;&#32593;&#31449;&#19978;&#28155;&#21152; WordPress &#26597;&#35810;&#30417;&#25511;&#24037;&#20855;&#21487;&#20197;&#24110;&#21161;&#24744;&#23454;&#26102;&#20102;&#35299;&#25968;&#25454;&#24211;&#26597;&#35810;&#24615;&#33021;&#12289;&#20248;&#21270;SQL&#35821;&#21477;&#21644;&#25552;&#39640;&#32593;&#31449;&#24615;&#33021;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;&#24744;&#30340;&#32593;&#31449;&#19978;&#28155;&#21152; WordPress &#26597;&#35810;&#30417;&#25511;&#24037;&#20855;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>&#27493;&#39588; 1: &#23433;&#35013; WordPress &#30417;&#25511;&#25554;&#20214;<\/h3>\n<p>&#39318;&#20808;&#65292;&#24744;&#38656;&#35201;&#23433;&#35013;&#19968;&#20010; WordPress &#30417;&#25511;&#25554;&#20214;&#26469;&#30417;&#25511;&#32593;&#31449;&#19978;&#30340;&#25968;&#25454;&#24211;&#26597;&#35810;&#12290;&#36825;&#37324;&#25512;&#33616;&#20351;&#29992; <code>Query Monitor<\/code> &#25554;&#20214;&#12290;<\/p>\n<h4>&#31034;&#20363;&#20195;&#30721;:<\/h4>\n<pre><code class=\"language-php\">\/\/ &#21152;&#36733; Query Monitor &#25554;&#20214;\nrequire_once __DIR__ . '\/vendor\/autoload.php';\nuse QueryMonitorQueryMonitor;\nuse QueryMonitorSqlParser;\n\n\/\/ &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Query Monitor &#23454;&#20363;\n$monitor = new QueryMonitor();\n\n\/\/ &#35774;&#32622;&#30417;&#21548;&#22120;&#20197;&#30417;&#25511;&#25968;&#25454;&#24211;&#26597;&#35810;\n$monitor-&gt;setListeners([\n    'sql' =&gt; function ($sql) {\n        \/\/ &#22312;&#27492;&#22788;&#29702; SQL &#35821;&#21477;&#65288;&#20363;&#22914;&#65292;&#26816;&#26597;&#26159;&#21542;&#23384;&#22312;&#37325;&#22797;&#39033;&#65289;\n        $this-&gt;checkForDuplicates($sql);\n    }\n]);\n\n\/\/ &#21551;&#21160;&#30417;&#25511;&#22120;&#24182;&#24320;&#22987;&#30417;&#21548;\n$monitor-&gt;start();<\/code><\/pre>\n<h3>&#27493;&#39588; 2: &#37197;&#32622; SQL &#26816;&#26597;&#35268;&#21017;<\/h3>\n<p>&#20026;&#20102;&#38450;&#27490;&#28508;&#22312;&#30340;&#38382;&#39064;&#65292;&#24744;&#21487;&#20197;&#20026;&#29305;&#23450;&#30340; SQL &#35821;&#21477;&#37197;&#32622;&#19968;&#20123;&#26816;&#26597;&#35268;&#21017;&#12290;&#36825;&#20123;&#35268;&#21017;&#21487;&#20197;&#26816;&#27979;&#21040;&#28508;&#22312;&#30340; SQL &#27880;&#20837;&#25915;&#20987;&#25110;&#25968;&#25454;&#24211;&#24322;&#24120;&#12290;<\/p>\n<h4>&#31034;&#20363;&#20195;&#30721;:<\/h4>\n<pre><code class=\"language-php\">\/\/ &#26816;&#27979; SQL &#27880;&#20837;&#25915;&#20987;\n$monitor-&gt;addCheck('sql-injection', [\n    'type' =&gt; SqlParser::TYPE_SQL,\n    'rules' =&gt; [\n        ['pattern' =&gt; '\/bORb\/i', 'action' =&gt; 'alert'],\n        ['pattern' =&gt; '\/bANDb\/i', 'action' =&gt; 'alert'],\n    ],\n]);<\/code><\/pre>\n<h3>&#27493;&#39588; 3: &#37197;&#32622;&#25968;&#25454;&#24211;&#26597;&#35810;&#30417;&#25511;<\/h3>\n<p>&#38500;&#20102; SQL &#26816;&#26597;&#65292;&#36824;&#21487;&#20197;&#23545;&#25968;&#25454;&#24211;&#26597;&#35810;&#36827;&#34892;&#30417;&#25511;&#65292;&#20197;&#30830;&#20445;&#23427;&#20204;&#19981;&#20250;&#23548;&#33268;&#32593;&#31449;&#24615;&#33021;&#19979;&#38477;&#25110;&#20854;&#20182;&#38382;&#39064;&#12290;<\/p>\n<h4>&#31034;&#20363;&#20195;&#30721;:<\/h4>\n<pre><code class=\"language-php\">\/\/ &#26816;&#26597;&#25968;&#25454;&#24211;&#26597;&#35810;&#26159;&#21542;&#36807;&#38271;\n$monitor-&gt;addCheck('database-query-length', [\n    'type' =&gt; SqlParser::TYPE_QUERY,\n    'threshold' =&gt; 5000, \/\/ &#21482;&#26377;&#24403;&#26597;&#35810;&#38271;&#24230;&#36229;&#36807;&#38408;&#20540;&#26102;&#25165;&#21457;&#20986;&#35686;&#25253;\n    'actions' =&gt; [\n        ['type' =&gt; 'log', 'message' =&gt; 'Long query detected.'],\n    ],\n]);<\/code><\/pre>\n<h3>&#27493;&#39588; 4: &#35266;&#23519;&#21644;&#35843;&#25972;&#30417;&#25511;&#32467;&#26524;<\/h3>\n<p>&#19968;&#26086;&#35774;&#32622;&#22909;&#30417;&#25511;&#35268;&#21017;&#21518;&#65292;&#24744;&#21487;&#20197;&#23450;&#26399;&#26597;&#30475;&#26597;&#35810;&#30417;&#25511;&#20202;&#34920;&#26495;&#20197;&#20102;&#35299;&#21738;&#20123;&#26597;&#35810;&#27491;&#22312;&#36816;&#34892;&#20197;&#21450;&#23427;&#20204;&#30340;&#25191;&#34892;&#24773;&#20917;&#12290;<\/p>\n<h4>&#31034;&#20363;&#20195;&#30721;:<\/h4>\n<pre><code class=\"language-php\">\/\/ &#26597;&#30475;&#24403;&#21069;&#36816;&#34892;&#30340;&#25152;&#26377;&#26597;&#35810;\n$monitors = $monitor-&gt;getMonitors();\n\nforeach ($monitors as $monitor) {\n    echo \"Monitoring for {$monitor['name']}...n\";\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#24744;&#21487;&#20197;&#22312;&#24744;&#30340; WordPress &#32593;&#31449;&#19978;&#36731;&#26494;&#22320;&#37197;&#32622;&#21644;&#30417;&#25511;&#25968;&#25454;&#24211;&#26597;&#35810;&#65292;&#20174;&#32780;&#25552;&#39640;&#32593;&#31449;&#24615;&#33021;&#21644;&#23433;&#20840;&#24615;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#20026;&#20102;&#24110;&#21161;&#24744;&#20102;&#35299;&#22914;&#20309;&#22312;WordPress&#32593;&#31449;&#19978;&#28155;&#21152;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[2107,2106],"tuisongtax":[],"class_list":["post-3465","post","type-post","status-publish","format-standard","hentry","category-wpdt","tag-cjyy","tag-cjzn"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts\/3465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/comments?post=3465"}],"version-history":[{"count":0,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/posts\/3465\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/media?parent=3465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/categories?post=3465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/tags?post=3465"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/wpcms\/wp-json\/wp\/v2\/tuisongtax?post=3465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}