Tuhinga Tuhinga
Nō nā tata nei ahau e mahi ana i tētahi paetukutuku WordPress , ā, i hiahia ahau ki te tāpiri i tētahi pūkaha rapu mahi-teitei puta noa i te pae. Whai muri i te roa o te rapu, i whiriwhiria e au a Meilisearch, ā, i honoa ki tētahi monomai ko Scry Search te ingoa.
I pai te haere i te tīmatanga. I tāutahia e au te monomai, i whirihorahia, ā, ka hangaia aunoatia te taupū. He tere rawa te rapu, ā, he tino pai te wheako.
Engari ka tae mai te raru.
He maha ngā tuhinga rerekē kei runga i te paetukutuku. Ko ētahi mō ngā whakamātautau ā-roto, ko ētahi he whārangi taunga motuhake mō ngā kiritaki motuhake, ā, ko ētahi he ihirangi kāore anō kia oti, kāore mātou e hiahia ki te muku. Me ngaro rawa atu ēnei ID tuhinga i ngā hua rapu.
Kāore i te rawaka te kore e kitea; engari kāore e taea te whakauru ki te rārangi ingoa a Meilisearch.

I whakaaro ahau he māmā noa iho tēnei; he mea noa iho te tango i ētahi ID. Me whai ngā matau e rite ana i roto i ngā tuhinga monomai; tāpirihia he tātari, ā, kua oti.
Heoi anō, i hē ahau.
He aha i kore ai e angitu ngā tikanga hopu noa?
I whakamātau tuatahi ahau i te matau tātari i whakahuatia i roto i te tuhinga whaimana. I tāpirihia e au ētahi rārangi waehere ki functions.php, i tiakina, i whakahoutia te papamuri, ā, i tāruatia anō.
Kātahi ka tirohia e au te papamuri o Meilisearch.
Kei reira tonu aua tuhinga.
I ohorere ahau.
I mahara ahau kua hē taku tuhituhi i te waehere, nō reira i tirohia e au i ētahi wā, engari kāore he hapa. Kātahi ka rapua e au ngā Take GitHub o te monomai, ā, i kitea e au he maha atu anō ngā tāngata kua pāngia e ngā raruraru rite.
E kitea ana kei te whakamahi te monomai Scry Search i tētahi tikanga rarangi mahi kore-tukutahi hei karo i te whakaroa i te tukanga tiaki papamuri. Ko te tikanga tēnei, ina pāwhiri koe i te "Tiaki Tuhinga" i te papamuri, ka taea te pana tonu i ngā raraunga ki roto i tētahi ripanga mahi ritenga, me te karo i te tātari tuhinga kotahi noa.
Ko te mea tino kino rawa atu, ina pāwhiritia e koe te "Index Posts" i te papamuri hei hanga anō i te taupū ā-ao, ka mahi tika te monomai i tētahi uiui pātengi raraunga puranga i te taumata o raro. I tēnei wā, kāore te matau tātari i tāpirihia e koe i mua e whai wāhi ki te whakahaere.
Arā, ka whai hua ngā tikanga aukati tikanga i te wā tonu ka tiakina ā-ringatia e koe te tuhinga. Engari he tino uaua ake te arorau tukutahi a Scry Search i tō whakaaro.
Waehere matua ārai inihua-rua
I muri i taku whakaaroaro, ka kite ahau kāore e taea te waiho noa i tēnei mea pēnei.
I te mea ko te pūwāhi whakauru "penapena tuhinga-kotahi" anake te mana o te matau tikanga, me kimi e au he huarahi hei aukati i a ia mai i ētahi atu wāhi.
E rua ngā ara kua puta mai i ahau.
Ko te take tuatahi ko te pito tuku whatunga. Ahakoa he tukutahitanga tuhinga kotahi, he tukutahitanga puranga rānei, me tuku tonu ngā raraunga whakamutunga ki te tūmau Meilisearch mā roto i ngā tono HTTP, tika? Nō reira, i mua i te tukunga o te tono HTTP, me tirotiro e au mēnā kei roto i te tinana tono ngā ID o aua tuhinga kua whakakorehia. Mēnā koinā, me ārai tika e au te tukunga o te tono.
Ko te tuarua o ngā kōrero e pā ana ki te patai raraunga. Nā te mea ka tiki tika mai te monomai i te rārangi tuhinga mai i te raraunga i te wā o te tātaitanga puranga, ka tangohia e au aua ID motuhake mai i ngā hua patai i mua i te whakahaere i te patai raraunga. Mai i te tirohanga a te monomai, kāore ēnei tuhinga i te tīariari, nō reira kāore e tikina mai.
E rua ngā ara, he inihua takirua. Ki te kore e taea te aukati i tētahi ara, ka wātea tētahi atu hei tārua.
I muri i taku mohiotanga i tēnei, ka tīmata ahau ki te tuhi waehere.
Mō te kaiwawao tuatahi, i whakamahia e au te mea taketake a WordPress.pre_http_requestTe tātari. Ka tīmata tēnei matau i mua i te tukunga o ngā tono HTTP a WordPress. Ko taku whakaaro ka kitea mēnā kei roto i te URL e tonoa ana...meilisearchMena kei roto i te tinana tono ngā ID o ngā tuhinga kua whakakorehia, ka āraia te tono.
Hei ārai i te monomai kei ripoata hapa, me hanga hoki e au he whakautu angitu. Ko te hōputu whakautu paerewa mō Meilisearch ko...{"taskUid":0,"status":"enqueued"}I whakahokia noa e au tēnei, kia whakaaro ai te monomai kua angitu te tukutahitanga.
Ko te tuarua o ngā arai i whakamahia e aupre_get_postsTe matau. Ka whakaohokia tēnei matau i mua i te whakahaere a WordPress i tētahi patai pātengi raraunga. Ko taku whakaaro, i ngā wā katoa e whakahaerehia ana e te kaiwhakahaere tētahi mahi i te pito o muri, i te wā rānei e whakahaerehia ana e tētahi monomai ngā mahi kore-tukutahi/tukutahi, me whakakotahi ngā ID kua kore e whakaurua ki roto i te...post__not_inI roto i ngā tawhā.
I muri i taku whakaoti i te tuhituhi, ka whakamatauria e au.
Tuatahi, i haere ahau ki te papamuri, i whakatuwhera i tētahi o ngā tuhinga i tangohia, i hanga ētahi huringa iti, ā, i pāwhiri i te whakahou. I tiakina pai, kāore he hapa. Kātahi ka tirohia e ahau te papamuri o Meilisearch, ā, kāore i rerekē te taupū o te tuhinga; kāore he mea hou i puta.
I pāwhiritia anō e au te "Index Posts" ā, i hangaia anōtia te katoa o te taupū. I muri i te tatari mō tētahi wā, ka tirohia e au te papamuri o Meilisearch. I reira tonu aua tuhinga kua whakakorea.
Kua oti.
Tātaritanga hōhonu: Me pēhea te mahi a te tikanga inihua takirua?
Ki te pono, i whakamahara mai tēnei tukanga i ahau ki tētahi mea tino whakamere.
I ngā tau 1880, i te wā e horapa haere ana te hiko i te Hononga o Amerika, he maha ngā rangatira wheketere i whakapau moni nui ki te hoko i ngā miihini whakaputa hiko me ngā mōtini hiko, ā, i tāuta ki roto i ā rātou wheketere. Heoi, i muri i te tāutanga, he tokomaha i kite kāore i tino pai ake te pai o te whakaputanga.
nā te aha?
Nā te mea i whakakapia noa e rātou te mīhini mamaoa ki te mīhini hiko, engari kāore i rerekē te whakatakotoranga whānui, ngā tukanga, me ngā tikanga whakahaere o te wheketere. He mea hou te hiko, engari he tawhito te whakaaro mō te whakamahi.
Ko te hunga i tino whai hua mai i te puāwaitanga o te hiko, ko rātou te rōpū tuatahi ki te mārama "he aha te tikanga o te hiko." Kāore i whakarerekē noa i tā rātou pūtake hiko; i hoahoa anō hoki rātou i tā rātou tukanga whakaputa katoa.
Pērā anō hoki mō te wā o te AI . He tokomaha te hunga e whakamahi ana i te AI hei taputapu, engari he iti noa iho te hunga e whakaaro ana ki te ariā matua e whakarerekētia ana e ia. He mea hou te taputapu tonu, engari ko te whakaaro i whakamahia ai, tera pea kei te tawhito tonu.
Hei tauira, i taku whakatūnga i te aukati rapu WordPress, kāore pea i taea e au te whakahaere mēnā i whai noa ahau i ngā tikanga paerewa i roto i te tuhinga monomai. Nā te mea kāore te arorau tukutahi a Scry Search i te huarahi tuku iho "tiakina tētahi tuhinga, tukutahi i tētahi tuhinga"; he rārangi kore tukutahi, he tukatuka puranga, me āna ake tikanga.
Me mārama koe ki te mahi a tēnei tikanga i mua i te kitenga i tētahi putanga hou.
Ngā herenga me ngā whakatūpato o te mahere
Heoi anō, me kī pono atu ahau, kāore hoki tēnei mahere i te tino tika.
He iti noa iho ōna herenga: ka taea anake te whakahaere i ngā tukutahitanga ā muri ake nei, ā, kāore e taea te muku aunoa i ngā tuhinga hītori o Meilisearch. Arā, mēnā kua tukutahitia e koe aua tuhinga, me muku tonu e koe ngā raraunga tawhito i roto i te papatohu Meilisearch, mā te whakamahi rānei i ngā whakahau API.
He mahi kotahi noa iho tēnei; ina oti, kāore koe e manukanuka ki tēnei mahi. Engari me whakamārama atu ahau i mua i te wā, kia kore ai e kitea tonutia aua tuhinga i roto i ngā hua rapu i muri i te whakatinanatanga o te waehere, ā, kia whakaaro ai koe kāore te waehere i whai mana.
Ko tētahi atu mea hei mōhio ko tēnei huarahi e whakawhirinaki ana ki te hanganga whatunga me te pātengi raraunga o WordPress. Mēnā ka mahi tonu ngā putanga o muri mai o te monomai Scry Search i runga i tēnei hanganga, ka mau tonu te whai hua o tēnei kaiwawao. Heoi, ki te huri ki tētahi tikanga tukutahi tino rerekē, me whakarerekē anō pea.
Heoi, ki te pono, kāore pea tēnei e tupu. Kei runga i tēnei hoahoa te pūnaha katoa o WordPress, ā, e kore rawa e taea e ngā monomai te karo katoa i tēnei.
Aratohu Hipanga-Toru ki te Whakatinanatanga
/**
* 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));
}
});
Hei whakamutunga, me whakarāpopoto ngā mahi.
Tuatahi, tāruatia te waehere ki te pito rawa o tō kōnae functions.php, tāpirihia rānei mā te whakamahi i te monomai Code Snippets. Kātahi, ki te tihi...defineI roto i te rarangi, tāuruhia te ID o te tuhinga, o te whārangi rānei e hiahia ana koe ki te whakakore.
Ko te taahiraa tuarua ko te horoi i ngā taupū hītori. Takiuru ki tō papaaho Meilisearch, whakamahia rānei ngā whakahau API hei muku ā-ringa i ngā raraunga taupū tawhito mō ngā tuhinga kua whakakorea.
Ko te tuatoru o ngā mahi ko te whakamātautau. Haere ki te pito o muri ka hanga i ngā huringa iti ki te tuhinga kua tangohia, pāwhiritia te whakahou, kātahi ka tirohia te pito o muri o Meilisearch. Ki te kore he taupū hou e puta mai ana, kua whai mana te aukati.
He pono, kua roa nei au e whakama ana mō te tuhi i ēnei momo tuhinga tiritiri hangarau.
Ahakoa he whai hua ngā mea ka tohaina e au ki ētahi tāngata, he mahi noa iho pea ki ētahi atu.
Heoi, he tino whai kiko te tukanga whakatinanatanga o te aukati rapu WordPress i tēnei wā. He maha ngā wā, ehara i te mea nā te kore o ngā otinga ngā raruraru e pā mai ana ki a tātou, engari nā te mea kua whakawhāitihia ō tātou whakaaro e ngā anga o nāianei.
Mā te monomai Scry Search ka taea te tātari, ā, ka whakapono tātou koinei anake te kōwhiringa. Heoi, he maha atu ngā mea ka taea e te hoahoanga katoa o WordPress. Ka taea te hopu i te apa whatunga, ā, ka taea hoki te mahi i te apa pātengi raraunga. Mena kei te hiahia koe ki te whakaaro, he ara tonu kei reira.
Koia ahau i pai ai ki te whakamātau i ēnei taputapu hangarau. Ehara i te mea mō te whakapehapeha, mō te ngana rānei kia āhua whakamiharo. Nā te mea he tino whakamīharo te māramatanga ki tētahi raruraru.
Pērā i tēnei wā, mai i te pōhēhētanga tuatahi, ki te whakaata i waenganui, ki te otinga whakamutunga, i rite te tukanga katoa ki te whakaoti rapanga.
Kua ea te mea ngaro, kua huraina te whakautu, ā, he tino māmā noa iho.
Engari, ki te mea kāore anō koe kia pā ki taua tukanga whakapoauau, e kore rawa koe e mārama ki tēnei hari ngāwari.
Nā te mea kua pānuihia e koe tēnei tuhinga tae noa mai ki konei, ki te mea he whai hua ki a koe, tēnā koa, paihia, tohaina mai hoki. Ki te hiahia koe ki te whiwhi whakahōutanga i te tuatahi, ka taea hoki e koe te whai i ahau.
Ngā mihi nui ki a koe mō te pānui i taku tuhinga. Kia kite anō tātou i te wā e whai ake nei.
Ko te tumanako, ka whai hua ki a koe te tuhinga "Me pēhea te tango katoa i tētahi ID Pou Motuhake mai i te Tukutahi me Meilisearch i roto i te WordPress (Scry Search Plugin in Practice)" i tohaina ki te blog a Chen Weiliang ( https://www.chenweiliang.com/ ).
Tukuna mai te hononga o tēnei tuhinga: https://www.chenweiliang.com/cwl-34343.html
