Tusitusiga Tusitusiga
Ua ou galue talu ai nei i se upega tafaʻilagi WordPress ma sa ou manaʻo e faʻaopoopo se afi suʻesuʻe maualuga le faʻatinoga mo le upega tafaʻilagi atoa. Ina ua maeʻa le tele o suʻesuʻega, sa ou filifilia le Meilisearch ma faʻapipiʻi faʻatasi ma se plugin e taʻua o le Scry Search.
Sa sologa lelei lava i le taimi muamua. Sa ou fa'apipi'i le plugin, fa'atulaga, ma sa otometi lava ona faia le fa'asinomaga. Sa vave tele le sailiga, ma sa matua'i lelei lava le aafiaga.
Ae o lea ua oo mai le faafitauli.
E tele ni tala e le masani ai i luga o le upega tafaʻilagi. O nisi e mo suʻega i totonu, o nisi o itulau faʻapitoa mo tagata faʻatau patino, ae o isi o anotusi e leʻi maeʻa ma matou te le manaʻo e tapeina. Ou te manaʻomia nei ID tala ia mou atu atoa mai taunuuga o suʻesuʻega.
E lē lava le lē mafai ona maua; ae e lē mafai foʻi ona iai i le faʻasinomaga a Meilisearch.

Sa ou manatu o se mea faigofie lenei; e na'o le aveeseina o ni nai ID. E tatau ona i ai i le pepa fa'amaumau o plugin ia matau talafeagai; na'o le fa'aopoopoina o se filter ma ua mae'a loa.
Ae peitaʻi, sa ou sesē.
Aiseā e lē manuia ai auala masani e fa'asao ai fa'afitauli?
Sa ou faʻataʻitaʻiina muamua le filter hook o loʻo taʻua i le pepa aloaia. Sa ou faʻaopoopoina ni nai laina o le code i le functions.php, sefeina, faʻafouina le backend, ma toe faʻasino i ai.
Ona ou siakiina lea o le backend a Meilisearch.
O loʻo iai pea na tusiga.
Sa ou teʻi tele.
Sa ou manatu na ou tusia le code sese, o lea na ou siakiina ai i ni nai taimi, ae leai se mea na sese ai. Ona ou suʻeina lea o le GitHub Issues o le plugin ma iloa ai e toʻatele isi tagata na feagai ma faʻafitauli faapena.
Ua iloa ai o le plugin Scry Search e faʻaaogaina se faiga faʻatulagaina o galuega e le tutusa le taimi e faʻagasolo ai le teuina o talaʻaga. O lona uiga a e kiliki i le "Sefe Tusitusiga" i talaʻaga, e mafai ona vave tuʻuina atu faʻamaumauga i totonu o se laulau galuega faʻapitoa, e aloese ai mai le faʻamamāina masani o tusitusiga taʻitasi.
O le mea e sili atu ona fa'alavelave, a e kiliki i le "Index Posts" i tua e toe fa'afouina ai le fa'asinomaga o le lalolagi, e fa'atino sa'o e le plugin se fesili fa'amaumauga fa'aputu i le tulaga o lo'o i lalo. I le taimi nei, o le matau fa'amama na e fa'aopoopoina muamua e le maua lava se avanoa e fa'atino ai.
I se isi faaupuga, o auala masani e poloka ai e na'o le taimi lava e te sefe ai le tusiga e amata ona aoga. Ae o le faiga fa'amaopoopo a le Scry Search e sili atu ona lavelave nai lo le mea e te mafaufauina.
Fa'ailoga autu o le interceptor inisiua fa'alua
Ina ua uma ona ou mafaufau i ai, sa ou iloa ai e le mafai ona tuua faapenei lenei mataupu.
Talu ai e na'o le pulea e le matau masani le ulufale "sefeina o mea e tasi", e tatau ona ou sailia se auala e poloka ai mai isi nofoaga.
Ua ou sau ma ni auala se lua.
O le faʻafitauli muamua o le pito o le fesoʻotaʻiga fesoʻotaʻiga. Pe o le faʻamaopoopoina o le tusiga e tasi pe o le faʻamaopoopoina o le tele o tusitusiga, e manaʻomia lava ona lafo atu faʻamatalaga mulimuli i le 'auʻaunaga Meilisearch e ala i talosaga HTTP, a ea? O lea la, aʻo leʻi lafoina atu le talosaga HTTP, e tatau ona ou siaki pe o iai i le tino o le talosaga ia ID o na tusiga e leʻi aofia ai. Afai o lea, e tatau ona ou poloka saʻo le talosaga mai le lafoina.
O le manatu lona lua e faʻatatau i le fesili i le faʻamaumauga. Talu ai e toe aumai saʻo e le plugin le lisi o tusiga mai le faʻamaumauga i le taimi o le faʻavasegaina o vaega, o le a ou aveese na ID faʻapitoa mai taunuuga o fesili aʻo leʻi faʻatinoina le fesili i le faʻamaumauga. Mai le vaʻaiga a le plugin, o nei tusiga e leai lava, o lea o le a le toe maua mai.
Ala e lua, inisiua faalua. Afai e le mafai ona poloka le tasi ala, e iai le isi e fai ma faaleoleo.
Ina ua uma ona ou iloaina, sa amata loa ona ou tusia ni polokalame faalilolilo.
Mo le uluai interceptor, sa ou faʻaaogaina le mea moni a le WordPress.pre_http_requestO le faamama. E amata lenei matau a'o le'i faia e le WordPress ni talosaga HTTP. O lo'u manatu o le a iloa pe o iai i le URL o lo'o talosagaina...meilisearchAfai o loʻo iai i le tino o le talosaga ia ID o mataupu ua faʻateʻaina, o le a poloka le talosaga.
Ina ia puipuia le plugin mai le lipotia mai o mea sese, e tatau foi ona ou pepelo se tali manuia. O le faatulagaga masani o tali mo Meilisearch o le...{"taskUid":0,"status":"enqueued"}Na ou toe faafoi atu lava lenei mea, ma mafua ai ona manatu le plugin ua manuia le synchronization.
O le interceptor lona lua na ou faʻaaogainapre_get_postsO le matau. E fa'agaoioia lenei matau a'o le'i fa'atinoina e le WordPress se fesili i le fa'amaumauga. O lo'u manatu, o so'o se taimi lava e fa'atino ai e se pule se galuega i le backend, pe a fa'atino e se plugin ni galuega fa'atino e le tutusa/fa'atasi, e tatau ona tu'ufa'atasia ID e le aofia i totonu o le...post__not_inI totonu o parakalafa.
Ina ua uma ona ou tusia, sa ou faataitaiina loa.
Muamua, sa ou alu i le backend, tatala se tasi o tusiga na aveese, faia ni nai suiga laiti, ma kiliki le update. Sa sefe lelei e aunoa ma ni mea sese. Ona ou siakiina lea o le Meilisearch backend, ma sa tumau pea le faasinomaga o le tusiga; e leai se mea fou na aliali mai.
Sa ou toe kilikiina le "Index Posts" ma toe fausia le index atoa. Ina ua mavae sina taimi, sa ou siakiina le Meilisearch backend. O na tusiga na le aofia ai sa i ai pea iina.
Ua maeʻa.
Su'esu'ega loloto: E fa'apefea ona galue le faiga o le inisiua faalua?
Ia fai atu ma le faamaoni, o lenei faagasologa na faamanatu mai ai ia te au se mea e matua manaia lava.
I le vaitau o le 1880, ina ua faatoa salalau atu le eletise i le Iunaite Setete, e toatele tagata e ona falegaosimea na faaaluina le tele o tupe e faatau ai ni generators ma ni motors eletise ma faapipii i totonu oa latou falegaosimea. Peitai, ina ua uma ona faapipiiina, e toatele tagata na latou iloa e lei faaleleia tele le lelei o le gaosiga.
Aisea?
Auā na o le suia o le afi ausa i se afi eletise, ae o le faatulagaga atoa, faiga, ma auala tau pulega o le falegaosimea e leʻi suia. Sa fou le eletise, ae o le mafaufau mo le faʻaaogaina sa tuai.
O i latou na manuia moni mai le faʻateleina o le eletise, o le vaega muamua lea na malamalama i le "uiga moni o le eletise." E le gata ina latou suia le latou puna o le eletise; ae na latou toe mamanuina atoa le faiga o a latou gaosiga.
E fa'apena fo'i i le vaitaimi o le AI . E to'atele tagata e fa'aogaina le AI o se meafaigaluega, ae e to'aitiiti lava e mafaufau i le mafua'aga autū e suia ai. E fou le meafaigaluega lava ia, ae o le mafaufau sa fa'aaogaina ai atonu e tuai pea.
Mo se faʻataʻitaʻiga, a o oʻu faʻatulagaina le poloka o sailiga a le WordPress, atonu ou te le mafai ona faʻagaoioia pe ana ou mulimuli i metotia masani i le pepa o faʻamatalaga o le plugin. E mafua ona o le faʻatulagaina o le Scry Search ua le toe avea ma auala masani "sefe se tasi tusiga, faʻatulaga se tasi tusiga"; e iai ni faʻasologa e le tutusa, faʻagasologa o le tele o taimi, ma ana lava seti o auala.
E manaʻomia ona e iloa le auala e galue ai lenei masini aʻo leʻi mafai ona e mauaina se auala fou e maua ai.
Tapula'a ma puipuiga o le fuafuaga
Ae ui i lea, e tatau ona ou fai atu ma le faamaoni e le atoatoa foi lenei fuafuaga.
E iai sona tapula'a tele: e na'o le fa'atulagaina o le lumana'i e mafai ona pulea ma e le mafai ona tape otometi fa'amaumauga fa'asolopito o lo'o iai i le Meilisearch. I se isi faaupuga, afai ua uma ona e fa'atulagaina na tusiga, e tatau lava ona e tapeina ma le lima fa'amaumauga tuai i le Meilisearch dashboard pe fa'aaoga poloaiga API.
O se galuega e faia faatasi lenei; a maeʻa loa, e te lē toe popole i ai. Ae e tatau ona ou faamanino atu lenei mea muamua, ina ia e lē toe maua na tusiga i taunuuga o le sailiga pe a uma ona e faʻaaogaina le code ma e te manatu ai e leʻi aoga le code.
O le isi itu e tatau ona maitauina, o lenei auala e faʻalagolago i le fausaga o fesoʻotaʻiga ma faʻamaumauga a le WordPress. Pe afai o loʻo faʻaauau pea ona faʻagaoioia lomiga o le lumanaʻi o le plugin Scry Search e faʻavae i luga o lenei fausaga, o le a tumau pea le aoga o lenei interceptor. Peitaʻi, afai e suia i se faiga faʻafetaui e matua ese lava, ona ono manaʻomia lea o le toe fetuʻunaʻi.
Ae peitaʻi, ia fai atu ma le faamaoni, e foliga mai e le o se mea e tupu lenei mea. O le faiga atoa o le WordPress ua fausia i luga o lenei fausaga, ma e toetoe lava a le mafai e plugins ona aloese atoa mai ai.
Taiala Laasaga e Tolu i le Faatinoga
/**
* 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));
}
});
I le faaiuga, se’i o tatou aoteleina laasaga o le faagaoioiga.
Muamua, kopi le code i le pito i lalo o lau faila functions.php, pe fa'aopoopo i ai e ala i le fa'aogaina o le Code Snippets plugin. Ona, i le pito i luga...defineI le fa'asologa, ulufale i le ID o le tusiga po'o le itulau e te mana'o e fa'ate'a.
O le laasaga lona lua o le fa'amamāina lea o fa'asinomaga fa'asolopito. Ulufale i lau Meilisearch dashboard, pe fa'aaoga poloaiga API e tape ai ma le lima fa'amaumauga tuai o fa'asinomaga mo tusiga ua le aofia ai.
O le laasaga lona tolu o le faia lea o le suega. Alu i le backend ma fai ni suiga laiti i le tusiga ua aveese, kiliki le update, ona siaki lea o le Meilisearch backend. Afai e leai se faasinomaga fou e aliali mai, ua amata ona aoga le poloka.
Ia fai atu le mea moni, sa ou lagonaina lava le tausalaina i le tusiaina o nei ituaiga o tusiga fa'apitoa e fa'asoa atu ai.
Atonu e aoga mea ou te faʻasoa atu i nisi tagata, ae mo isi atonu e na o ni galuega faigofie.
Peitaʻi, o le faagasologa o le faʻatinoina o le polokaina o sailiga a le WordPress i le taimi lea sa matuā aoga lava. E masani lava, o faʻafitauli tatou te feagai e lē mafua mai i le leai o ni fofo, ae ona o lo tatou mafaufau e faʻatapulaʻaina e faʻavae o loʻo iai.
O le plugin Scry Search e maua ai se fa'amama, e mafua ai ona tatou talitonu o le pau lea o le filifiliga. Peita'i, o le fausaga atoa o le WordPress e ofoina atu le tele o avanoa. E mafai ona ausia le fa'alavelave i le vaega o le feso'ota'iga, ma e mafai fo'i ona faia i le vaega o le fa'amaumauga. Pe afai e te naunau e mafaufau, e iai lava se auala.
O le mafuaʻaga lea ou te fiafia ai e faʻataʻitaʻi nei masini faʻatekinolosi. E lē o le faʻaalialia pe taumafai e foliga mataʻina. Ona o le lagona o le malamalama atoatoa i se faʻafitauli e matuā faʻamalieina ai.
E pei lava o le taimi lenei, mai le fenumiai muamua, i le atagia mai i le ogatotonu, i le fofo mulimuli, o le faagasologa atoa e pei o le foia o se paso.
Ua foia le mealilo, ua faaalia mai le tali, ma ua manino mai sa matua faigofie lava.
Ae afai e te leʻi oo i lena faagasologa fenumiai, o le a e le malamalama lava i lenei olioli faigofie.
O lea la ua e faitauina lenei mea, afai e te iloa e aoga, fa'amolemole fiafia ma fa'asoa mai. Afai e te mana'o e maua muamua fa'amatalaga fou, e mafai fo'i ona e mulimuli mai ia te a'u.
Faafetai mo le faitauina o la'u tusiga. Toe feiloa'i i le isi taimi.
Fa'amoemoe o le a fesoasoani ia te oe le tusiga "Auala e Fa'ate'a Atoatoa ai se ID Fa'apitoa o le Post mai le Fa'afetaui ma Meilisearch i le WordPress (Scry Search Plugin in Practice)" na fa'asoa i le blog a Chen Weiliang ( https://www.chenweiliang.com/ ).
Fa'asoa atu le so'otaga o lenei tusiga: https://www.chenweiliang.com/cwl-34343.html
