WordPress: Kuthetsa Mavuto ndi Kukonza Mafunso Anu a SQL Template ndi SAVEQUERIES

Mmodzi wamba wamba kumbuyo waulesi WordPress tsamba siloyenera kukhala wolandira, wanu CDN, kapenanso kukula kwa zithunzi zanu—ndichosungira chanu. Makamaka, kuchuluka kwake komanso kusakwanira kwa SQL mafunso opangidwa ndi mutu wanu ndi mapulagini. Tsamba lililonse limatha kuyambitsa ambiri-kapena osakometsedwa bwino, mazana-amafunso a database. Mukachulukitsidwa pamajeti, ma shortcode, ma sidebars, ndi block editor zinthu, mafunsowa amatha kupanga zovuta zogwirira ntchito zomwe sizidziwika koma zimakhudzabe Core Web Vitals yanu (CWV) komanso chidziwitso cha ogwiritsa ntchito onse.
Madivelopa ambiri amayang'ana pa caching ndi kutumiza kwa CDN kuti akwaniritse zovuta za magwiridwe antchito, koma izi zimangothetsa gawo limodzi lamavuto. Ngati funso lomwe likufunsidwa silikuyenda bwino, mukujambula pa dzimbiri. Gawo loyamba la kukhathamiritsa kowona ndikumvetsetsa zomwe zikuchitika pansi pa hood.
ZOKHUDZA
WordPress imapereka nthawi zonse, SAVEQUERIES, yomwe imasunga funso lililonse la database lomwe lafunsidwa, kuphatikiza nthawi yomwe funso lililonse limatenga. Mukagwiritsidwa ntchito mosamalitsa, ndi chida chamtengo wapatali chodziwira zolakwika muzithunzi zanu zamutu, omanga masamba, ndi mapulagini ophatikizana.
Patsamba lokonzedwa bwino la WordPress, template yamasamba yodziwika bwino iyenera kupanga pakati pa mafunso 20 ndi 50. Tsamba locheperako kapena mawonekedwe opepuka a positi imodzi akhoza kuyandikira pafupi ndi 20, pomwe zolemba zakale zovuta kwambiri kapena tsamba lazogulitsa la WooCommerce litha kukwera molunjika ku 50 chifukwa cha kuyang'ana kwamisonkho ndi metadata.
Chilichonse choposa pamenepo—makamaka mazana—chimasonyeza kusagwira ntchito bwino. Funso lililonse limayambitsa mutu, ndipo ngakhale kuchedwa kwa microsecond kumachulukira mwachangu. Mafunso apamwamba nthawi zambiri amalozera ku malupu osafunikira, zosankha zosasinthika, kapena mapulagini omwe akupanga mafoni awo a database osadalira funso lalikulu la WordPress. Kusunga mawerengedwe otsika sikutanthauza malire osakhazikika - ndi kuonetsetsa kuti funso lililonse lili ndi chifukwa chokhalirapo komanso kuti ma tempuleti anu azichita bwino m'masamba onse.
Kuthandizira SAVEQUERIES pa malo kupanga popanda mtundu uliwonse wa kulamulira linanena bungwe kungakhale kwambiri. Mutha kuwona masauzande ambiri a mafunso atatayidwa pansi pa HTML yanu, zomwe zimapangitsa kuti zikhale zovuta kudziwa kuti ndi ma tempuleti kapena zigawo ziti zomwe zimayambitsa kuchepa kwapang'onopang'ono. Yankho lake ndikungodula mitengo kuti mtundu uliwonse wa template - tsamba lakutsogolo, tsamba, positi imodzi, zosungidwa - zipange fayilo yakeyake. Izi zimapereka mawonekedwe omveka bwino, am'magulu a mafunso anu okwera mtengo kwambiri akuchitikira.
Momwe Mungalembe Mafunso Anu a Template ya WordPress
Nayi njira yosavuta koma yamphamvu yodula bwino mafunso a WordPress. Poyika kachidindo kotsatira mufuncs.php ya mutu wanu kapena pulogalamu yowonjezera, mutha kujambula ndi kusunga zolemba zamafunso nthawi iliyonse yomwe mwalowa ngati woyang'anira komanso SAVEQUERIES ndikoyambitsidwa.
// If SAVEQUERIES is enabled, print the queries in the footer in an HTML tag
function log_queries_to_file() {
global $wpdb;
// Check conditions: SAVEQUERIES enabled and logged-in admin
if (defined('SAVEQUERIES') && SAVEQUERIES && is_user_logged_in() && current_user_can('manage_options')) {
// Define the log directory (site root/queries/)
$log_dir = ABSPATH . 'queries/';
// Create the directory if it doesn't exist (with recursive creation and proper permissions)
if (!file_exists($log_dir)) {
mkdir($log_dir, 0755, true);
}
// Skip if directory isn't writable
if (!is_writable($log_dir)) {
return; // Or add error logging if desired
}
// Determine the filename based on page type
$filename = '';
if (is_front_page()) {
$filename = 'queries-frontpage.log';
} elseif (is_page()) {
$template_slug = get_page_template_slug(get_the_ID());
if (empty($template_slug)) {
$template_slug = 'default';
} else {
// Sanitize template slug: basename without .php
$template_slug = basename($template_slug, '.php');
}
$filename = 'queries-page-' . sanitize_title($template_slug) . '.log';
} elseif (is_archive()) {
$post_type = 'post'; // Default for standard archives
if (is_post_type_archive()) {
$post_type = get_query_var('post_type');
if (is_array($post_type)) {
$post_type = reset($post_type); // Handle multi-type, take first
}
} elseif (is_category() || is_tag() || is_tax()) {
// For taxonomies, get the post type from queried object if custom
$queried = get_queried_object();
if ($queried && isset($queried->taxonomy)) {
$tax = get_taxonomy($queried->taxonomy);
$post_type = is_array($tax->object_type) ? reset($tax->object_type) : $tax->object_type;
}
} elseif (is_author() || is_date()) {
$post_type = 'post';
}
$filename = 'queries-archive-' . sanitize_title($post_type) . '.log';
} elseif (is_singular()) { // Covers single posts, pages, CPTs
$post_type = get_post_type(get_the_ID());
$filename = 'queries-single-' . sanitize_title($post_type) . '.log';
}
// If no matching type, skip or use a fallback like 'queries-other.log'
if (empty($filename)) {
return;
}
// Full file path
$file_path = $log_dir . $filename;
// Prepare log content (queries list with optional header)
$log_content = "\n\n=== Queries for " . esc_url_raw(home_url(add_query_arg(array(), $GLOBALS['wp']->request))) . " on " . current_time('mysql') . " ===\n";
$log_content .= print_r($wpdb->queries, true);
// Append to file (creates if not exists)
file_put_contents($file_path, $log_content, FILE_APPEND | LOCK_EX);
}
}
add_action('shutdown', 'log_queries_to_file'); Mukayatsa, mupeza a /queries/ chikwatu muzu wanu wa WordPress wokhala ndi mafayilo olembera monga queries-frontpage.log kapena queries-single-post.log. Ndidalowa ngati woyang'anira, ndidayendera ulalo uliwonse womwe umakhala ndi imodzi mwama template anga kuti alembe mafunso ndi momwe amagwirira ntchito.
Momwe Mungawerengere Data Yanu ya SAVEQUERIES
Kulowa kulikonse kudzawonetsa mawu afunso, nthawi yochitira, ndi stack yoyimba yomwe idayambitsa. M'kupita kwa nthawi, izi zimakupatsani mbiri yomwe ma templates ndi mawonekedwe akupanga kwambiri.
[20] => Array
(
[0] => SELECT wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (32489)
) AND wp_posts.post_type = 'nav_menu_item' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order ASC
[1] => 0.00042486190795898
[2] => require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/jannah/page.php'), get_header, locate_template, load_template, require_once('/themes/mtz-23/header.php'), TIELABS_HELPER::get_template_part, include('/themes/jannah/templates/header/load.php'), TIELABS_HELPER::get_template_part, include('/themes/jannah/templates/header/nav-top.php'), wp_nav_menu, wp_get_nav_menu_items, get_posts, WP_Query->query, WP_Query->get_posts
[3] => 1762916659.7638
[4] => Array
(
)
) Zomwe zalembedwazi kuchokera pazotulutsa za SAVEQUERIES zikuyimira funso limodzi la SQL lopangidwa ndi WordPress, limodzi ndi nthawi ndi tsatanetsatane wazomwe zimapangitsa kuti zitheke kudziwa komwe zidayendera komanso chifukwa chake. Chigawo chilichonse chokhala ndi manambala chimafanana ndi funso, ndipo kapangidwe kake kamapereka zidziwitso zisanu:
- Funso lokha - Mtengo pa index [0] ndi mawu osasinthika a SQL omwe WordPress adatumiza ku database. Pamenepa:
SELECT wp_posts.ID
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
WHERE 1=1
AND (wp_term_relationships.term_taxonomy_id IN (32489))
AND wp_posts.post_type = 'nav_menu_item'
AND ((wp_posts.post_status = 'publish'))
GROUP BY wp_posts.ID
ORDER BY wp_posts.menu_order ASC - Funsoli limatenga zinthu zonse zomwe zasindikizidwa (post_type = 'nav_menu_item') zomwe zili m'ndandanda inayake (term_taxonomy_id = 32489). LEFT JOIN imalumikiza chinthu chilichonse chamndandanda ku ubale wake wamisonkho, ndipo zigawo za GROUP BY ndi ORDER BY zimatsimikizira kuti zinthu za menyu zabwezedwa mu dongosolo lake. Ili ndi funso lomwe limapangidwa pomwe mutu wa WordPress umapereka mndandanda wamayendedwe kudzera wp_nav_menu().
- Nthawi yokonzekera mafunso - Mtengo wa index [1] (0.00042486190795898) umayimira nthawi, mumasekondi, yomwe funsolo lidatenga kuti lichite. Pachifukwa ichi, adamaliza osakwana theka la millisecond, zomwe ndi zabwino kwambiri. Mukawunika zolemba, mafunso omwe amapitilira masekondi 0.02-0.05 ndi omwe angakwaniritsidwe.
- Itanani stack - Mtengo wa index [2] umalemba mndandanda wathunthu wamayimbidwe a PHP omwe adayambitsa funsoli. Kuyiwerenga kuchokera kumanzere kupita kumanja kukuwonetsa kuti funsolo lidachokera pamutu wamutu wamutu popereka menyu wakusaka. Mwachindunji, ntchito ya wp_nav_menu yotchedwa wp_get_nav_menu_items, yomwe inayambitsa foni ya get_posts, yomwe imachitidwa ndi WP_Query->get_posts njira. Kutsatira kuyimba kumeneku ndikofunikira kuti muwonetsere template kapena ntchito yomwe idayambitsa funsolo.
- Timestamp - Mtengo pa index [3] (1762916659.7638) ndi chizindikiro cha nthawi ya Unix pomwe funso lidafunsidwa panthawi yofunsira. Izi zimathandiza kuyitanitsa mafunso motsatira nthawi kapena kuwalumikiza ndi kalozera wina wake.
- Mikangano - Gulu lomaliza pa [4] lilibe kanthu mu chitsanzo ichi, koma lingakhale ndi magawo aliwonse omangika ngati funsolo litagwiritsa ntchito zosungira malo.
Mwachidule, chipikachi chikuwonetsa kuti mutuwu udapanga funso lokhazikika kuti mutenge zinthu zapa menyu kuti ziwonetsedwe pamutu watsambalo. Ngakhale kuti funsolo ndilothandiza, ndi chikumbutso chabwino kuti malo aliwonse a menyu kapena gawo losinthika litha kuyambitsa mafunso owonjezera. Pamasamba ovuta okhala ndi mindandanda yazambiri kapena mitu ya widget, kuyang'ana kwakung'ono, kobwerezabwereza kungathe kuwonjezera-kulimbitsa kufunikira kwa mindandanda yazakudya zosunga zobwezeretsera ndi zinthu zina zamasamba osasunthika ngati njira yamphamvu yokwaniritsira.
Momwe Mungakulitsire Ma template Anu ndi Mafunso
Mukazindikira kuti ndi ma tempulo ndi zigawo ziti zomwe zikupanga mafunso ambiri, chotsatira ndikuwongolera. Kukhathamiritsa kwamafunso mu WordPress sikungokhudza liwiro chabe, koma kukhazikika komanso kukhazikika. Kukonzekera pang'ono komwe kumakuchitikirani kumatha kuchepetsa kuchuluka kwa mafunso anu, ndikupangitsa masamba anu kukhala olabadira ngakhale pakagwa magalimoto ambiri.
- Chotsani mafunso osafunika. Mitu yambiri ya WordPress ndi mapulagini amafunsa zomwe sagwiritsa ntchito. Mwachitsanzo, ena amatenga metadata yonse ikangofunika gawo limodzi kapena kuyimba get_posts() mkati mwa malupu m'malo modalira funso lalikulu. Yang'anani mafayilo anu a template ndikuchotsa mafoni osafunikira, makamaka mkati mwa malupu kapena zigawo zobwerezabwereza monga mitu ndi ma footer. Ngati n'kotheka, sinthani zinthu zosunthika zoyendetsedwa ndi database ndi ma tag a template osasintha kapena zikhalidwe zomwe zidapangidwa kale.
- Chepetsani kuchuluka kwa mafunso ndi caching. Imodzi mwa njira zothandiza kwambiri zowonjezerera kuchita bwino ndikusunga zidziwitso zomwe zimapezeka pafupipafupi zomwe zimasintha pafupipafupi. Mwachitsanzo, menyu, madera a widget, kapena zosankha zamasamba zitha kusungidwa pakanthawi kochepa kapena mu cache ya chinthu kuti mupewe kuyang'ana mobwerezabwereza patsamba lililonse. Mwachitsanzo, menyu ya tsambali ikhoza kutengedwa ndikusungidwa pakanthawi kochepa komwe kamasintha kokha menyu ikasintha. Njira iyi imatsitsa mafunso obwerezabwereza ndikuchepetsa kwambiri kuchuluka kwa database popanda kusiya kutsitsimuka.
- Konzani database yanu ndi indexing yoyenera. Pakapita nthawi, ma database a WordPress amakula ndikugawikana, makamaka pamasamba omwe ali ndi matebulo ambiri a postmeta kapena commentmeta. Kuyika milozera yoyenera pamagawo omwe amafunsidwa pafupipafupi - monga meta_key ndi meta_value - kungapangitse kusiyana kwakukulu. Mapulagini ambiri, kuphatikiza Query Monitor ndi WP-Optimize, amatha kuwunikira mafunso ocheperako ndikuwonetsa kusintha kwa indexing. Kukhathamiritsa matebulo anu nthawi ndi nthawi komanso kuyeretsa ma data amasiye kumathandizanso kuti MySQL ifufuze bwino.
- Gwiritsani ntchito zida zosungira za database. Mafunso anu akagwira ntchito moyenera momwe mungathere, kusungitsa zotsatira zawo kumatha kukulitsa magwiridwe antchito. Machitidwe osungira zinthu monga Redis kapena Memcached sitolo zotsatira ndi PHP zinthu mu kukumbukira, kotero WordPress akhoza kuzipeza popanda kugunda mobwerezabwereza nkhokwe. Izi ndizothandiza makamaka pamasamba omwe ali ndi anthu ambiri kapena omwe ali ndi mafunso ovuta, pomwe ma postmeta kapena ma taxonomy omwewo amapezeka pazopempha zingapo. Kusunga zinthu mosalekeza kumatsimikizira kuti data ikalandidwa, imakhalabe yofikirika mwachangu mpaka italetsedwa mwatsatanetsatane-kuchepetsa kwambiri kuchuluka kwa MySQL ndikuwongolera nthawi yoyankha. Makasitomala ambiri amakono amapereka Redis kapena Memcached kuphatikiza, ndipo WordPress imawathandiza mwachibadwa kudzera pa mapulagini otsitsa osungira monga object-cache.php.
- Gwiritsani ntchito caching masamba ndi zida za CDN. Kupitilira pakusintha kwadongosolo la database, mayankho amasamba athunthu amalepheretsa masamba ambiri kuti asatchule WordPress kapena MySQL konse. Mapulagini monga WP Rocket, W3 Total Cache, ndi LiteSpeed Cache amatha kupanga ndi kusunga masamba osasunthika amasamba anu, kuwatumikira nthawi yomweyo kwa alendo. Pagawo la seva, cache ya Nginx FastCGI kapena Varnish imachita zomwezo ngakhalenso kumunsi kwamutu. Kuwonjezera Content Delivery Network (CDN) monga Cloudflare kapena BunnyCDN imakulitsa izi posungira ndi kugawa zinthu zomwe sizili zokhazikika padziko lonse lapansi, kuchepetsa kuchedwa kwa ogwiritsa ntchito mosasamala kanthu komwe ali. Ma CDN amathanso kusunga zithunzi zonse za HTML za alendo osadziwika, kutanthauza kuti seva yanu yoyambira simayankha zopempha zamphamvu. Pamodzi, zigawo izi za caching zimapanga utsogoleri wotsogola - cache ya database, cache ya chinthu, cache ya masamba, ndi cache ya CDN - zomwe zimatsimikizira kuti WordPress imapereka masamba mwachangu momwe ingathere ndikuchepetsa kwambiri mafunso ndi ntchito ya seva.
Kutsiliza
Kuchita kwa database ndi chimodzi mwazinthu zomwe zimasiyidwa kwambiri pakukhathamiritsa kwa WordPress. Ngakhale mapulagini, zolemba, ndi zithunzi nthawi zambiri zimakhala ndi mlandu pakuchulukitsidwa kwapang'onopang'ono, mafunso ochulukirapo komanso osagwira ntchito nthawi zambiri amakhala olakwa. Mwa kuyatsa SAVEQUERIES, kufufuza mitengo pogwiritsa ntchito template, ndikuthana ndi mavuto mwadongosolo, mutha kuzindikira zovuta zomwe opanga ambiri samaziwona.
Kuchotsa mafunso osafunikira, kusungitsa mwanzeru, kukhathamiritsa matebulo anu, ndikugwiritsa ntchito mayankho amitundu ingapo kumatha kusintha WordPress kuchoka pafunso lolemetsa. CMS m'malo osindikizira achangu, owopsa. Kuthamanga kwenikweni sikutheka mwa kubisala zolakwika kudzera mu caching yokha-zimayamba ndi kumvetsetsa ndi kukonza zomwe zimayambitsa kusagwira ntchito bwino: momwe tsamba lanu limayankhulira ndi database yake.



