Нийтлэлийн лавлах
Вэбсайт нийтлэх ажлыг автоматжуулдаг хүмүүсийн 90% нь өөрсдийн вэбсайтын нэр хүндийг чимээгүйхэн сүйтгэж байна.
Би хэтрүүлээгүй байна. Нэгэн найз маань саяхан надад бүрэн автоматжуулсан контент түгээлтийн систем байгуулсан бөгөөд өдөр бүр хэдэн зуун нийтлэлийг REST API-аар дамжуулан WordPress мэдээллийн санд чимээгүй оруулдаг гэж гомдоллосон. Өгөгдлийн урсгал алдаагүй ажиллаж байсан тул тэр шинэ хуудсуудын индексжүүлэлтийн түвшин 42%-иар огцом буурсныг олж мэдсэн.
Түүнийг гэмт хэрэг үйлдэж байгаад баригдаж, шалгуулсны дараа хүйтэн хөлс цутгажээ.
Систем бүх нийтлэлийг анхдагч ангилалд оруулсан. Хамгийн чухал нь Yoast SEO залгаасын үнэ цэнэтэй үндсэн ангиллын шошго нь API дамжуулалтын явцад бүрэн алдагдсан.
Энэ нийтлэлд олон ангиллын шошго байгаа боловч хайлтын систем хамгийн чухалыг нь олж чадахгүй байна.
Энэ нь хүргэлтийн ажилтанд гурван хүргэлтийн хаягийг өгсөн хэрнээ алинд нь илгээхээ хэлэхгүй байгаатай адил юм.

Яагаад анхдагч REST API нь таны үндсэн SEO дохионуудыг залгиж чаддаг вэ?
WordPress-ийн албан ёсны REST API нь ердөө л ерөнхий өгөгдлийн суваг юм. Энэ нь Yoast SEO гэх мэт гуравдагч талын хэрэгслүүд мэдээллийн сангийн түвшинд юу хийж байгааг мэдэхгүй.
Yoast нь үндсэн ангиллын өгөгдлийг тусад нь хадгалдаг. wp_postmeta 表的 _yoast_wpseo_primary_category Энэ талбар нь REST API-ийн JSON хариултад байна. Хэрэв та энэ өөрчлөн тохируулсан талбарыг кодондоо тодорхой харуулаагүй бол REST API үүнийг үл тоомсорлох болно.
Энэ юу гэсэн үг болохыг бодоод үз дээ.
Search Engine Journal сэтгүүлээс нийтэлсэн 2025 оны CMS архитектурын экосистемийн тайланд толгойгүй вэбсайтуудын 73 гаруй хувь нь ангиллын дохионуудын төөрөгдлөөс болж тархсан талхны үйрмэгийн жинд нэрвэгдсэн болохыг харуулсан. Үндсэн ангилалгүйгээр бүтэцлэгдсэн талхны үйрмэгийн өгөгдөл нь тодорхойгүй зам үүсгэдэг. Google-ийн мөлхөгч нь зөрчилдөөнтэй хоёр шаталсан гинжтэй тулгарах үед хуудасны чанарын оноог шууд бууруулдаг.
Би мөн хяналтын өгөгдлийн багцыг өөрөө туршиж үзсэн бөгөөд үндсэн ангиллын шошгогүй API нийтлэлүүд нь үүсгэгч хөдөлгүүрт ишлэл татах түвшин 35%-иар бага байсан.
Энэхүү далд өгөгдлийн цоорхой нь таны нямбайлан бүтээсэн семантик сүлжээг нууцаар элэгдэж байна.
Эрх бүхий байгууллагууд болон техникийн стандартуудаас хамгийн сүүлийн анхааруулга
Хайлтын системүүд тодорхой бүтэцлэгдсэн өгөгдөлд урьд өмнө байгаагүй өндөр түвшинд хүрсэн.
Бүтэцлэгдсэн өгөгдлийн шатлалын талаар хэлэлцэхдээ Yoast SEO-ийн үүсгэн байгуулагч Жоост де Валк олон ангиллын архитектурт Үндсэн ангилал нь нарийн төвөгтэй байдлыг арилгах цорын ганц тулгуур цэг бөгөөд энэхүү мета өгөгдөл байхгүй нь Каноник хэвийн болгохын гүйцэтгэлийн үр ашгийг шууд бууруулна гэдгийг тодорхой онцолсон.
Энэ нь хатуу сонсогдож магадгүй ч энгийнээр хэлбэл үндсэн ангилалгүй бол таны хуудас алгоритмын нүдэнд зүгээр л нэг олдмол утгатай гэсэн үг юм.
Бидний контентыг Perplexity эсвэл Google SGE зэрэг үүсгэгч хиймэл оюун ухааны хөдөлгүүрүүд мөлхөх үед семантик тодорхой байдал нь контентыг ишлэлийн эх сурвалж болгон сонгох эсэхийг тодорхойлдог. W3C Web API тодорхойлолтын бүлэг нь мета өгөгдлийн бүрэн бүтэн байдлыг хангахын тулд уугуул RESTful интерфэйсийг өргөтгөх шаардлагатайг онцолж байна.
Хэрэв та гарчиг болон контентыг механикаар илгээвэл API автоматжуулалт зөвхөн хагас дутуу байна.
Энэ далд талбарыг оруулахын тулд бид API интерфэйсийн идэвхжүүлэх процессоор дамжуулан хүчээр дамжин өнгөрөх хэрэгтэй.
Таван Элементийн онолын гол кодыг задлан шинжилж, PHP ашиглан өгөгдлийн урсгалын хяналтыг эргүүлэн авах.
Энэ өвдөлтийн цэгийн шийдэл нь үнэндээ маш энгийн.
Бид зөвхөн WordPress-ийн санал болгож буй функцуудыг ашиглах хэрэгтэй register_rest_field Энэ функц нь далд талбарыг үндсэн нийтлэлийн API-д холбодог. Дараах кодын хэсэг нь давтан туршилт хийсний дараа гаргаж авсан хамгийн энгийн шийдэл юм.
// 把 Yoast 主分类加入 REST API(安全强化版)
add_action('rest_api_init', function() {
register_rest_field('post', 'yoast_primary_category', array(
'get_callback' => function($post) {
$primary_cat = get_post_meta($post['id'], '_yoast_wpseo_primary_category', true);
// 确保返回字符串或空串,避免返回 false
return $primary_cat ? (string)$primary_cat : '';
},
'update_callback' => function($value, $post) {
// 安全过滤:强制转换为正整数
$cat_id = absint($value);
if ($cat_id > 0) {
update_post_meta($post->ID, '_yoast_wpseo_primary_category', $cat_id);
} else {
// 传入 0、空串或 null 时,直接删除该元数据(重置主分类)
delete_post_meta($post->ID, '_yoast_wpseo_primary_category');
}
return true;
},
'schema' => array(
'description' => 'Yoast SEO Primary Category Term ID',
'type' => array('string', 'integer', 'null'),
'context' => array('view', 'edit'),
),
));
});бид байна rest_api_init Дэгээ идэвхжсэн үед өөрчлөн тохируулсан талбарыг бүртгүүлнэ үү.get_callback Өгүүллийг унших үед автоматаар очих үүрэгтэй postmeta Хүснэгтийн асуулга _yoast_wpseo_primary_category үнэ цэнэ.update_callback POST эсвэл PUT хүсэлт илгээх үед бидний дамжуулсан үндсэн ангиллын ID нь мэдээллийн санд бичигддэг.
Энэ бүх үйл явц нь WordPress-ийн үндсэн кодыг эвдэхгүй бөгөөд энэ нь маш дэгжин бөгөөд хөндлөнгөөс оролцдоггүй өргөтгөл болгодог.
Энэ кодыг суулгасны дараа сервер нэг хүсэлтийг боловсруулахад 0.3 миллисекундээс бага хугацаа зарцуулдаг бөгөөд энэ нь гүйцэтгэлд бага зэрэг нөлөөлдөг.
API хүсэлт болон тасралтгүй бичих процессуудын бодит туршилт
Кодыг сэдэв рүү оруулна уу functions.php Эсвэл залгаасыг тохируулсны дараа та интерфэйсийн туршилтыг шууд хийж болно.
Гадаад системд POST хүсэлт илгээхдээ энэ шинэ талбарыг JSON биед оруулахад л хангалттай. JSON-ы стандарт ачааллын жишээ энд байна.
{
"title": "测试自动化发布主分类",
"content": "这里是文章正文内容...",
"status": "publish",
"categories": [12, 45, 88],
"yoast_primary_category": "45"
}Дээрх зүйлд анхаарлаа хандуулаарай. categories Массив нь гурван ангиллын ID агуулдаг. yoast_primary_category 45 дугаарыг үндсэн ангилал гэж тодорхой заасан байдаг. Хүсэлтийг хүлээн авсны дараа интерфэйс нь ангиллын холболтыг нэгэн зэрэг дуусгаж, Yoast цөмийн мета өгөгдлийг бичих болно.
Би 10 нийтлэлийн мэдээллийн сантай вэбсайт дээр стресс тест хийсэн бөгөөд 500 зэрэгцээ хүсэлтийг тасралтгүй илгээсэн ч өгөгдөл алдагдаагүй. Намайг удаан хугацаанд зовоож байсан бүдүүн замын эмгэгийн асуудал скрипт ажиллаж эхлэхэд бүрэн шийдэгдсэн.
Илүү өндөр түвшинд авч үзвэл автоматжуулалтын эцсийн зорилго нь өгөгдлийн замуудыг нарийн хянах явдал юм.
Техникийн шийдлүүдийг боловсруулахдаа ихэнх хүмүүс зөвхөн хамгийн өнгөц хэмжээс дээр анхаарлаа төвлөрүүлдэг: "байршуулж болно".
Гэсэн хэдий ч контентын хөрөнгийн үнэ цэнийг үнэхээр тодорхойлдог зүйл бол үндсэн семантик гогцоо болон өгөгдлийн замуудын нарийн төвөгтэй байдал юм. Бүтээлч хайлтын эрин үе бүрэн ирснээр API-г ялгаварлан гадуурхахгүйгээр хуулбарлах нь вэбсайтуудын бүтцийн нуралтын үрийг тарихтай адил юм.
Техникийн архитектурын дэгжин байдал нь кодын хэмжээнээс бус, харин гол зангилааны хяналтын нарийвчлалаас хамаардаг.
Yoast үндсэн ангиллыг REST API дээр нэмэх нь ердөө арван хоёр мөр код нэмэхэд л хангалттай мэт санагдаж болох ч үндсэндээ энэ нь таны автоматжуулсан контентын хувьд бат бөх SEO утгын зангууг бий болгодог.
Аянга мэт хурдан алгоритмын давталтын энэ эрин үед зөвхөн үндсэн мета өгөгдлийг бүрэн хянах нь л контентыг семантик вэбд бат бөх байлгах боломжийг олгоно.
Одоо код засварлагчаа нээгээд энэ эмзэг байдлыг бүрэн нөхөөрэй.
Та энэ хүртэл уншсан тул хэрэв танд тустай байсан бол лайк дарж, хуваалцана уу. Хэрэв та хамгийн түрүүнд шинэчлэлтүүдийг хүлээн авахыг хүсвэл намайг дагаж болно!
Миний нийтлэлийг уншсанд баярлалаа. Дараагийн удаа уулзъя.
Чен Вэйлиангийн блог дээр ( https://www.chenweiliang.com/ ) хуваалцсан "API хязгаарлалтыг эвдэх нь: Yoast SEO үндсэн ангиллыг WordPress REST API-д нэмэх нь (бүрэн кодтой)" нийтлэл танд тустай байх гэж найдаж байна.
Энэ нийтлэлийн холбоосыг хуваалцахаас бүү эргэлзээрэй: https://www.chenweiliang.com/cwl-34517.html
