Tusaha Maqaalka
Dhawaanahan wax ayaan ka shaqeynayay.WordPressWaxaan rabay inaan ku daro raadinta bogga oo dhan oo heer sare ah boggayga. Kadib markii aan wax badan baadhay, waxaan doortay Meilisearch waxaana la mideeyay plugin la yiraahdo Scry Search.
Markii hore si habsami leh ayay u socotay. Waxaan rakibay plugin-ka, waan habeeyey, tusmadana si toos ah ayaa loo soo saaray. Xawaaraha raadinta ayaa ahaa mid si dhakhso ah u socday, waayo-aragnimaduna runtii aad bay u fiicnayd.
Laakiin halkan ayaa timid dhibaatadu.
Waxaa jira dhowr maqaal oo aan caadi ahayn oo ku jira bogga internetka. Qaarkood waxaa loogu talagalay tijaabinta gudaha, qaarna waa bogag degitaan oo loogu talagalay macaamiil gaar ah, kuwa kalena waa waxyaabo aan dhammaystirnayn oo aynaan rabin inaan tirtirno. Waxaan u baahanahay in aqoonsiyada maqaalkan ay gebi ahaanba ka baaba'aan natiijooyinka raadinta.
Kuma filna in aan la heli karin; waa in xitaa aan lagu qori karin tusmada Meilisearch.

Waxaan u maleeyay in tani ay fududayd; waa arrin ka reebista dhowr aqoonsi. Dukumentiyada plugin-ka waa inay lahaadaan jillaabyada u dhigma; kaliya ku dar shaandho waana la dhammeeyay.
Sida ay noqotay, waan qaldanaa.
Maxay hababka faragelinta caadiga ah u fashilmaan?
Markii ugu horreysay waxaan isku dayay shaandhada lagu sheegay dukumeentiga rasmiga ah. Waxaan ku daray dhowr sadar oo kood ah functions.php, waan keydiyay, dib ayaan u cusbooneysiiyay qaybta dambe, oo dib ayaan u tusmeeyay.
Kadib waxaan hubiyay qaybta dambe ee Meilisearch.
Maqaalladaasi wali way jiraan.
Waan yaabay.
Waxaan u maleeyay inaan qoray kood khaldan, sidaa darteed dhowr jeer ayaan hubiyay, laakiin wax khalad ah kuma jirin. Kadib waxaan baaray GitHub Issues ee plugin-ka waxaana ogaaday in dhowr qof oo kale ay la kulmeen dhibaatooyin la mid ah.
Waxaa soo baxday in plugin-ka Scry Search uu adeegsado hab shaqo oo aan isku mid ahayn si looga fogaado inuu gaabiyo habka keydinta asalka. Tani waxay ka dhigan tahay marka aad gujiso "Keydso Maqaalka" gadaasha, xogta waxaa isla markiiba lagu riixi karaa miiska shaqada ee gaarka ah, iyadoo laga gudbayo shaandhaynta caadiga ah ee hal-qodob.
Waxa ka sii daran ayaa ah marka aad gujiso "Qoraallada Tusmada" ee gadaasha si aad dib ugu soo nooleyso tusmada caalamiga ah, plugin-ku wuxuu si toos ah u sameeyaa weydiin xog ururin ah oo heer hoose ah. Waqtigan xaadirka ah, jillaab shaandheyn ah oo aad hore ugu dartay ma helo fursad uu ku fuliyo.
Si kale haddii loo dhigo, hababka xannibaadda caadiga ah waxay dhaqan galaan oo keliya marka aad gacanta ku kaydiso maqaalka. Laakiin macquulka isku-xidhka Scry Search waa mid aad uga adag sidii aad malayn karto.
Koodhka asaasiga ah ee dhexdhexaadiyaha caymiska laba-laaban
Ka dib markii aan ka fikiray, waxaan ogaaday in arrintan aan sidan looga tagi karin.
Maadaama jillaabkii caadiga ahaa uu kaliya xakameeyo barta laga galo "keydinta hal-qodob", waxaan u baahanahay inaan helo hab aan uga xannibo meelaha kale sidoo kale.
Laba waddo ayaan soo maray.
Arrinta ugu horreysa waa dhammaadka gudbinta shabakadda. Hadday tahay isku-dubaridka hal-qodob ama isku-dubaridka dufcadda, xogta kama dambaysta ah wali waa in loo diraa server-ka Meilisearch iyada oo loo marayo codsiyada HTTP, sax? Markaa, ka hor inta aan la dirin codsiga HTTP, waa inaan hubiyaa in hay'adda codsigu ay ku jirto aqoonsiyada maqaalladaas laga saaray. Haddii ay sidaas tahay, waa inaan si toos ah u xannibaa codsiga in la diro.
Qodobka labaad wuxuu khuseeyaa weydiinta xogta. Maadaama plugin-ku uu si toos ah uga soo qaato liiska maqaalka kaydka inta lagu jiro tusmada dufcadda, waxaan ka saari doonaa aqoonsiyadaas gaarka ah natiijooyinka weydiinta ka hor inta aan la fulin weydiinta xogta. Aragtida plugin-ka, maqaalladani ma jiraan haba yaraatee, sidaa darteed lama soo ceshan doono.
Laba waddo, caymis labanlaab ah. Haddii hal waddo aan la xiri karin, waxaa jira mid kale oo kayd ah.
Ka dib markii aan ogaaday, waxaan bilaabay qorista koodka.
Markii ugu horreysay ee aan isticmaalo, waxaan isticmaalay midka asalka u ah WordPress.pre_http_requestShaandhaynta. Jillaabkan ayaa kiciya ka hor inta WordPress uusan sameynin wax codsiyo HTTP ah. Macquulkeygu waa inuu ogaan doono haddii URL-ka la codsaday uu ku jiro...meilisearchHaddii hay'adda codsiga ay ku jirto aqoonsiyada maqaallada laga saaray, codsiga waa la xannibi doonaa.
Si aan uga hortago in plugin-ku uu soo sheego khaladaadka, waxaan sidoo kale u baahanahay inaan been abuuro jawaab guul leh. Qaabka jawaabta caadiga ah ee Meilisearch waa...{"taskUid":0,"status":"enqueued"}Si fudud ayaan tan u soo celiyay, anigoo plugin-ka ka dhigaya inuu u maleeyo in isku-dubaridku uu guuleystay.
Qabsashada labaad ee aan isticmaalaypre_get_postsJillaabku. Jillaabkan waxaa la kiciyaa ka hor inta uusan WordPress fulin weydiinta xogta. Macquulkeygu waa in mar kasta oo maamuluhu uu hawlgal ku sameeyo dhabarka dambe, ama marka plugin uu sameeyo hawlgallo aan isku mid ahayn/isku mid ahayn, aqoonsiyada laga saaray waa in lagu daraa...post__not_inXuduudaha.
Markii aan dhammeeyay qorista, waan tijaabiyay.
Marka hore, waxaan tagay qaybta dambe, waxaan furay mid ka mid ah maqaallada laga saaray, waxaan sameeyay dhowr isbeddel oo yar yar, ka dibna waxaan gujiyay cusbooneysiinta. Si guul leh ayay u keydisay iyada oo aan wax khaladaad ah dhicin. Kadib waxaan hubiyay qaybta dambe ee Meilisearch, tusmada maqaalkuna isma beddelin; wax cusub ma soo muuqan.
Waxaan mar kale gujiyay "Qoraallada Tusmada" oo dib u dhisay dhammaan tusmada. Ka dib markii aan sugay muddo, waxaan hubiyay qaybta dambe ee Meilisearch. Maqaalladaas laga saaray weli way jireen.
Waa la dhammeeyay.
Falanqayn qoto dheer: Sidee buu u shaqeeyaa habka caymiska labanlaabka ah?
Si daacad ah, hawshani waxay i xasuusisay wax aad u xiiso badan.
Waad ogtahay, sanadihii 1880-meeyadii, markii korontadu ay si weyn ugu faaftay Mareykanka, mulkiilayaasha warshado badan ayaa lacag badan ku bixiyay inay iibsadaan matoorro iyo matoorro koronto oo ay ku rakibaan warshadahooda. Si kastaba ha ahaatee, ka dib markii la rakibay, dad badan ayaa ogaaday in hufnaanta wax soo saarku aysan si weyn u soo hagaagin.
maxaa?
Sababtoo ah waxay si fudud ugu beddeleen matoorka uumiga matoor koronto, laakiin qaab-dhismeedka guud, hababka, iyo hababka maaraynta warshadda ayaa is beddelay. Korontadu way cusubayd, laakiin fikirka loo isticmaalay ayaa duugoobay.
Kuwa runtii ka faa'iidaystay kor u kaca korontada ayaa dhab ahaantii ahaa kooxdii ugu horreysay ee fahamta "waxa korontadu dhab ahaantii ka dhigan tahay." Kaliya ma aysan beddelin isha korontadooda; waxay dib u habeeyeen habka wax soo saarkooda oo dhan.
haddaAIIsla sidaas oo kale ayaa dhacda waqtiyada. Dad badan ayaa u isticmaala AI qalab ahaan, laakiin dad yar ayaa ka fikira waxa macquulka ah ee uu dhab ahaantii isbeddelo. Qalabku wuu cusub yahay, laakiin fikirka loo isticmaalay in lagu isticmaalo wuxuu noqon karaa mid duugoobay.
Tusaale ahaan, markii aan dejinayay xannibaadda raadinta WordPress, malaha ma aanan awoodin inaan shaqeeyo haddii aan raaco hababka caadiga ah ee ku jira dukumeentiyada plugin-ka. Tani waa sababta oo ah macquulka isku-xidhka Scry Search ma aha habka dhaqameed ee "keyd hal maqaal, isku-xidh hal maqaal"; waxay leedahay saf aan isku-xirnayn, habayn dufcadeed, iyo farsamooyin u gaar ah.
Waxaad u baahan tahay inaad ogaato sida farsamadani u shaqeyso ka hor intaadan helin horumar dhab ah.
Xaddidaadaha iyo taxaddarrada qorshaha
Si kastaba ha ahaatee, waa inaan si daacad ah u sheegaa in qorshahani uusan ahayn mid dhammaystiran.
Waxay leedahay xaddidaad muhiim ah: waxay maamuli kartaa oo keliya isku-dubaridka mustaqbalka mana tirtiri karto diiwaannada taariikhiga ah ee jira ee Meilisearch. Si kale haddii loo dhigo, haddii aad horey u simisay maqaalladaas, weli waxaad u baahan tahay inaad gacanta ku tirtirto xogtii hore ee ku jirtay dashboard-ka Meilisearch ama aad isticmaasho amarrada API.
Waa hawl hal mar la qabto; marka la dhammeeyo, uma baahnid inaad ka walwasho mar dambe. Laakiin waxaan u baahanahay inaan tan caddeeyo ka hor, si ka dib markaad geliso koodka, aadan u helin maqaalladaas natiijooyinka raadinta oo aad u malaynayso in koodku uusan dhaqan gelin.
Qodob kale oo ay tahay in la xuso ayaa ah in habkani uu ku tiirsan yahay shabakadda hoose iyo qaab-dhismeedka xogta ee WordPress. Ilaa iyo inta noocyada mustaqbalka ee plugin-ka Scry Search uu sii shaqeynayo iyadoo lagu saleynayo qaab-dhismeedkan, interceptor-kani wuxuu ahaan doonaa mid waxtar leh. Si kastaba ha ahaatee, haddii uu waligiis u wareego farsamo isku-dubarid gebi ahaanba ka duwan, markaa dib-u-habayn ayaa laga yaabaa inay lagama maarmaan noqoto.
Si kastaba ha ahaatee, si daacad ah, tani waa wax aan macquul ahayn. Nidaamka deegaanka WordPress oo dhan wuxuu ku dhisan yahay qaab-dhismeedkan, waana wax aan macquul ahayn in plugins-ku ay si buuxda uga gudbaan.
Hagaha Saddex-tallaabo ah ee Hirgelinta
/**
* Scry Search 双保险拦截器:彻底排除指定文章 ID 同步到 Meilisearch
*/
// ==========================================
// 【配置】请在这里填写你想要排除的文章或页面 ID
// ==========================================
define('MEILI_EXCLUDED_IDS', array(1067, 1014, 1474, 34020));
/**
* 保险一:拦截单篇保存/更新时的网络推送 (方案 A 优化版)
* 原理:当 WordPress 发送网络请求时,如果发现是发往 meilisearch 且带有排除的 ID,直接掐断
*/
add_filter('pre_http_request', function($preempt, $parsed_args, $url) {
// 1. 检查是不是发往 Meilisearch 的请求
if (strpos($url, 'meilisearch') !== false && isset($parsed_args['body'])) {
$body_content = $parsed_args['body'];
// 2. 检查请求体里是否包含任何一个被排除的文章 ID
foreach (MEILI_EXCLUDED_IDS as $id) {
// 匹配格式如 "id":1067 或 字符串中的 ID
if (strpos($body_content, (string)$id) !== false) {
// 找到匹配,直接拦截网络请求,并向插件伪造一个标准的成功响应
return array(
'response' => array('code' => 200, 'message' => 'OK'),
'body' => '{"taskUid":0,"status":"enqueued"}'
);
}
}
}
return $preempt;
}, 10, 3);
/**
* 保险二:拦截后台全量索引时的数据库查询 (方案 B)
* 原理:在插件试图从数据库捞取文章列表时,直接将这几个 ID 从查询结果中剔除
*/
add_action('pre_get_posts', function($query) {
// 仅在后台管理员操作,或者插件执行异步同步时生效
if (is_admin() || (defined('DOING_ASYNC') && DOING_ASYNC)) {
// 获取当前查询已经存在的排除 ID(如果有的话)
$current_excluded = $query->get('post__not_in');
if (!is_array($current_excluded)) {
$current_excluded = array();
}
// 将我们的专属排除 ID 合并进去
$query->set('post__not_in', array_merge($current_excluded, MEILI_EXCLUDED_IDS));
}
});
Ugu dambeyntii, aan soo koobno tallaabooyinka hawlgalka.
Marka hore, nuqul ka samee koodhka qaybta hoose ee faylkaaga functions.php, ama ku dar adigoo isticmaalaya qalabka Code Snippets. Kadib, xagga sare...defineSafka, geli aqoonsiga maqaalka ama bogga aad rabto inaad ka saarto.
Tallaabada labaad waa in la nadiifiyo tusmooyinka taariikhiga ah. Soo gal dashboard-kaaga Meilisearch, ama isticmaal amarrada API si aad gacanta ugu tirtirto xogtii hore ee tusmada maqaallada laga saaray.
Tallaabada saddexaad waa tijaabinta. Tag qaybta dambe oo samee isbeddello yar yar oo ku yimaada maqaalka laga saaray, dhagsii cusboonaysiinta, ka dibna hubi qaybta dambe ee Meilisearch. Haddii aan tusmo cusub soo muuqan, xannibaaddu way dhaqan gashay.
Run ahaantii, had iyo jeer waxaan dareemayay dambi yar oo ku saabsan qorista noocan ah maqaallada wadaagga farsamada.
Waxyaabaha aan la wadaago waxay noqon karaan kuwo waxtar u leh dadka qaar, laakiin kuwa kale waxay noqon karaan hawlgallo aasaasi ah.
Laakiin geeddi-socodka hirgelinta xannibaadda raadinta WordPress markan wuxuu ahaa mid runtii wax ku ool ah. Badanaa, dhibaatooyinka aan la kulanno ma aha sababo la xiriira la'aanta xalalka, laakiin waxay sabab u tahay fikirkeenna oo ay xaddidan yihiin qaab-dhismeedyada jira.
Qalabka Scry Search wuxuu bixiyaa jillaab shaandhayn ah, taasoo naga dhigaysa inaan aaminsanahay in tani ay tahay ikhtiyaarka kaliya. Si kastaba ha ahaatee, qaab-dhismeedka oo dhan ee WordPress wuxuu bixiyaa fursado badan. Dhexgalka waxaa lagu gaari karaa lakabka shabakadda, waxaana sidoo kale lagu samayn karaa lakabka xogta. Ilaa inta aad diyaar u tahay inaad ka fikirto, had iyo jeer waxaa jira waddo.
Taasi waa sababta aan ugu raaxeysto inaan ku shaqeeyo aaladahaan farsamada. Ma aha inaan muujiyo ama isku dayo inaan u ekaado mid cajiib ah. Waa sababtoo ah dareenka fahamka dhibaatada oo dhan waa mid aad u qancisa.
Sida markan oo kale, laga bilaabo jahawareerkii hore, ilaa milicsiga dhexda, ilaa xalka kama dambaysta ah, geeddi-socodka oo dhan wuxuu ahaa sidii xallinta xujo.
Sirtii waa la xalliyay, jawaabtii waa la shaaciyay, waxay noqotay mid aad u fudud.
Laakiin haddii aadan soo marin habkaas jahawareerka leh, weligaa ma fahmi doontid farxaddan fudud.
Hadda oo aad ilaa hadda akhriday, haddii aad u aragtay mid waxtar leh, fadlan like saar oo la wadaag. Haddii aad rabto inaad marka hore hesho warar cusub, waad ila soo raaci kartaa.
Waad ku mahadsan tahay akhrinta maqaalkayga. Waan ku soo laaban doonaa marka xigta.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Maqaalka "Sida Si Buuxda Looga Saaro Aqoonsiga Boostada Gaarka ah ee Isku-dubaridka Meilisearch ee WordPress (Scry Search Plugin in Practice)" ee halkan lagu wadaagay ayaa laga yaabaa inuu ku caawiyo.
Ku soo dhawoow inaad wadaagto xiriirka maqaalkan:https://www.chenweiliang.com/cwl-34343.html
