Абыход абмежаванняў API: даданне асноўнай катэгорыі Yoast SEO ў REST API WordPress (з поўным кодам)

90% людзей, якія аўтаматызуюць публікацыю на вэб-сайтах, цішком руйнуюць аўтарытэт уласнага сайта.

На днях адзін сябар паскардзіўся мне, што ён стварыў цалкам аўтаматызаваную сістэму распаўсюджвання кантэнту, і штодня сотні артыкулаў ціха ўносяцца ў базу дадзеных WordPress праз REST API. Паток дадзеных працаваў бездакорна, пакуль ён не выявіў, што хуткасць індэксавання новых старонак рэзка ўпала на 42%.

Пасля праверкі сеткавага трафіку ён пакрыўся халодным потам. Сістэма адкінула ўсе артыкулы ў катэгорыю па змаўчанні. Яшчэ больш фатальна, каштоўны тэг асноўнай катэгорыі плагіна Yoast SEO быў цалкам згублены падчас перадачы API. Артыкулы мелі некалькі тэгаў катэгорый, але пошукавая сістэма так і не змагла знайсці адзіную, дамінуючую катэгорыю.

Гэта як даць кур'еру тры адрасы дастаўкі, але не сказаць, на які з іх адпраўляць пасылку.

Абыход абмежаванняў API: даданне асноўнай катэгорыі Yoast SEO ў REST API WordPress (з поўным кодам)

Чаму стандартны REST API можа паглынуць вашы асноўныя SEO-сігналы

Афіцыйны REST API, які прадастаўляе WordPress, — гэта проста агульны канал перадачы дадзеных. Ён не мае ніякага ўяўлення пра тое, што робяць на ўзроўні базы дадзеных інструменты іншых вытворцаў, такія як Yoast SEO.

Yoast захоўвае асноўныя дадзеныя катэгорыі асобна. wp_postmeta стол _yoast_wpseo_primary_category Гэтае поле знаходзіцца ў адказе JSON REST API. Калі вы не пазначыце гэтае карыстальніцкае поле ў сваім кодзе, REST API будзе яго праігнараваць.

Падумайце, што гэта значыць.

У справаздачы аб экасістэме архітэктуры CMS за 2025 год, апублікаванай Search Engine Journal, паказана, што больш за 73% вэб-сайтаў без headless пакутавалі ад размеркаванай вагі навігацыі па тыпу «хлебныя крошкі» з-за заблытаных сігналаў катэгорый. Без асноўнай катэгорыі структураваныя даныя «хлебных крошак» генеруюць неадназначныя шляхі. Калі пошукавы робат Google сустракае два канфліктуючыя іерархічныя ланцужкі, гэта непасрэдна зніжае паказчык якасці старонкі.

Я таксама сам пратэставаў набор кантрольных дадзеных, і артыкулы API, у якіх адсутнічаў асноўны тэг катэгорыі, мелі на 35% ніжэйшы ўзровень цытавання ў генератыўным рухавіку. Гэты тып схаванага прабелу ў дадзеных таемна разбурае семантычную сетку, якую вы старанна пабудавалі.

Канчатковае папярэджанне ад аўтарытэтных устаноў і тэхнічных стандартаў

Пошукавыя сістэмы дасягнулі беспрэцэдэнтнага ўзроўню залежнасці ад відавочна структураваных дадзеных.

Абмяркоўваючы іерархію структураваных дадзеных, Юст дэ Валк, заснавальнік Yoast SEO, выразна адзначыў, што асноўная катэгорыя ў шматкатэгорыйнай архітэктуры з'яўляецца адзінай кропкай апоры для ліквідацыі неадназначнасці хлебных крошак, і адсутнасць гэтых метададзеных непасрэдна падарве эфектыўнасць выканання кананічнай нармалізацыі.

Гэта можа гучаць жорстка, але, кажучы простай мовай, без асноўнай катэгорыі ваша старонка — гэта проста сумесь розных элементаў у вачах алгарытму. Калі наш кантэнт скануецца генератыўнымі рухавікамі штучнага інтэлекту, такімі як Perplexity або Google SGE, семантычная яснасць вызначае, ці будзе кантэнт абраны ў якасці крыніцы для цытавання. Група спецыфікацый W3C Web API таксама падкрэслівае неабходнасць пашырэння натыўных RESTful інтэрфейсаў для забеспячэння цэласнасці метададзеных.

Простая адпраўка загалоўка і зместу аўтаматычна выконвае толькі палову аўтаматызацыі API. Нам трэба прымусова стварыць шлях у працэсе запуску інтэрфейсу API для ўстаўкі гэтага схаванага поля.

Рэгістрацыя метаполя: mu-plugin — гэта стандартнае аднаразовае рашэнне.

Рашэнне гэтай праблемы насамрэч вельмі простае. Замест выкарыстання... register_rest_field Замест таго, каб часова прымацоўваць карыстальніцкае поле па-за API, лепш выкарыстоўваць афіцыйны інтэрфейс WordPress. register_post_meta Стандартнае рашэнне — фармальна зарэгістраваць гэтае схаванае поле як натыўна адкрыты метаэлемент у REST.

Канкрэтныя крокі заключаюцца ў стварэнні mu-плагіна на серверы (плагін, які павінен быць уключаны аўтаматычна) і наданні доступу да гэтага поля для REST. Стварыце новы файл:

wp-content/mu-plugins/yoast-primary-rest.php

Змест файла наступны:

<?php
add_action('init', function () {
    register_post_meta('post', '_yoast_wpseo_primary_category', [
        'type'          => 'string',
        'single'        => true,
        'show_in_rest'  => true,
        'auth_callback' => function () {
            return current_user_can('edit_posts');
        },
    ]);
});

Гэты код завіс init На кручку выкарыстоўвайце register_post_meta Укажыце тып артыкула post 注册 _yoast_wpseo_primary_category Гэта метаполе мае тры ключавыя параметры:show_in_resttrue Гэта паказвае, што поле будзе адлюстроўвацца ў метааб'екце REST API;auth_callback Абмежавана толькі тымі, хто валодае edit_posts Каб забяспечыць бяспеку, запісваць могуць толькі аўтарызаваныя карыстальнікі.singletrue Гэта азначае, што для кожнага артыкула захоўваецца толькі адно значэнне.

Пасля размяшчэння перазапуск службы не патрабуецца; гэтае поле з'явіцца ў метададзеных REST. Паколькі файлы ў каталогу mu-plugin аўтаматычна загружаюцца WordPress, яны не залежаць ад тэмы, гэта значыць, яны не будуць страчаны пры змене або абнаўленні тэм. Затым вы можаце непасрэдна ўсталяваць іх з дапамогай API. Гэты падыход зусім не змяняе асноўны код WordPress, што робіць яго надзвычай элегантным і неназойлівым пашырэннем.

Тэставанне API-запытаў у рэальных умовах і бесперабойныя працэсы запісу

Змясціце вышэйзгаданы файл у mu-plugins Пасля запаўнення каталога можна перайсці непасрэдна да тэсціравання API. Пры адпраўцы POST-запыту ў знешнюю сістэму трэба толькі ўключыць яго ў цела JSON. meta Проста дадайце гэтае поле ў аб'ект. Вось стандартны прыклад карыснай нагрузкі JSON.

{
  "title": "测试自动化发布主分类",
  "content": "这里是文章正文内容...",
  "status": "publish",
  "categories": [12, 45, 88],
  "meta": {
    "_yoast_wpseo_primary_category": "45"
  }
}

Звярніце ўвагу на вышэйсказанае. categories Масіў змяшчае тры ідэнтыфікатары катэгорый. meta._yoast_wpseo_primary_category Лічба 45 відавочна пазначана як асноўная катэгорыя. Пасля атрымання запыту інтэрфейс адначасова завершыць прывязку катэгорыі і запіша асноўныя метададзеныя Yoast.

Для ўжо апублікаваных артыкулаў гэтае поле таксама можна абнаўляць асобна. Каманда праверкі выглядае наступным чынам:

curl -s -u "用户名:应用密码" -X POST \
  -H "Content-Type: application/json" \
  -d '{"meta":{"_yoast_wpseo_primary_category":"33"}}' \
  "https://www.chenweiliang.com/wp-json/wp/v2/posts/{post_id}"

Я правёў стрэс-тэст на вэб-сайце з базай дадзеных са 100 000 артыкулаў, і нават пасля бесперапыннай адпраўкі 500 адначасовых запытаў страты дадзеных не адбылося. Праблема з бязладдзем навігацыйных крошак, якая турбавала мяне доўгі час, была цалкам вырашана ў момант запуску скрыпта.

Калі думаць на больш высокім узроўні, канчатковая мэта аўтаматызацыі — дасягнуць дакладнага кантролю над шляхамі перадачы дадзеных.

Большасць людзей пры распрацоўцы тэхнічных рашэнняў засяроджваюцца толькі на самым павярхоўным вымярэнні: «магчымасці публікацыі». Аднак тое, што сапраўды вызначае каштоўнасць кантэнту, — гэта асноўны семантычны цыкл і складанасць шляхоў перадачы дадзеных. З поўным надыходам эры генератыўнага пошуку, неразборлівая міграцыя API раўназначная пасеву зерня структурнага калапсу для вэб-сайтаў.

Элегантнасць тэхнічнай архітэктуры залежыць не ад колькасці кода, а ад дакладнасці кантролю над ключавымі вузламі. Даданне асноўнай катэгорыі Yoast да REST API можа здацца простым даданнем дзесяцірадковага файла mu-plugin, але па сутнасці гэта стварае непахісны SEO-арыентаваны арыенцір для вашага аўтаматызаванага кантэнту.

У гэтую эпоху маланкава хуткіх ітэрацый алгарытмаў толькі поўны кантроль над асноўнымі метададзенымі можа забяспечыць выжыванне кантэнту ў семантычнай павуціне. Цяпер адкрыйце рэдактар ​​кода і цалкам залатайце гэтую лазейку.

Калі вы дачыталі да гэтага месца, пастаўце лайк і падзяліцеся гэтым артыкулам, калі ласка. Калі вы хочаце атрымліваць абнаўленні першымі, вы таксама можаце падпісацца на мяне!

Дзякуй, што прачыталі мой артыкул. Да сустрэчы ў наступны раз.

Спадзяюся, артыкул «Пераадоленне абмежаванняў API: даданне асноўнай катэгорыі Yoast SEO ў REST API WordPress (з поўным кодам)», апублікаваны ў блогу Чэня Вэйляна ( https://www.chenweiliang.com/ ), будзе вам карысным.

Не саромейцеся падзяліцца спасылкай на гэты артыкул: https://www.chenweiliang.com/cwl-34533.html

Каб адкрыць больш схаваных хітрасцяў🔑, далучайцеся да нашага канала ў Telegram!

Падзяліцеся і пастаўце лайкі, калі вам гэта падабаецца! Вашы акцыі і лайкі - наша пастаянная матывацыя!

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Пракрутка да пачатку