{"id":13223,"date":"2026-06-09T13:17:17","date_gmt":"2026-06-09T11:17:17","guid":{"rendered":"https:\/\/flaven.fr\/?post_type=bf_videos_manager&#038;p=13223"},"modified":"2026-06-09T13:18:44","modified_gmt":"2026-06-09T11:18:44","slug":"wordpress-taxonomy-pipeline-pt-2-wikidata-breadcrumb-json-wp-plugin-demo","status":"publish","type":"bf_videos_manager","link":"https:\/\/flaven.fr\/videos\/wordpress-taxonomy-pipeline-pt-2-wikidata-breadcrumb-json-wp-plugin-demo\/","title":{"rendered":"WordPress Taxonomy Pipeline Pt.2: Wikidata + Breadcrumb JSON &#038; WP Plugin Demo"},"content":{"rendered":"<p>Part 2 of 2 | AI-Powered WordPress Taxonomy Migration<\/p>\n<p>Continuing from Part 1 \u2014 Step 3 (Wikidata enrichment) has finished<br \/>\nprocessing 100 WordPress tags. Now I complete the pipeline and wire the<br \/>\noutput directly into WordPress.<\/p>\n<p>What you will see:<\/p>\n<p>Step 3 results \u2014 Each tag now carries a Wikidata canonical Q-number,<br \/>\nmultilingual labels, and a human-readable description. &#8220;Airbnb&#8221; is no<br \/>\nlonger just a string \u2014 it is a knowledge-graph entity with provenance,<br \/>\ndescription, and links to related concepts.<\/p>\n<p>Step 4 \u2014 Write enriched proposals to two custom MySQL tables<br \/>\n(wp_breadcrumb_terms, wp_breadcrumb_proposals) that sit alongside<br \/>\nWordPress core tables without touching them. Each term gets a structured<br \/>\nJSON breadcrumb array, e.g.:<br \/>\n  [<br \/>\n    {&#8220;label&#8221;: &#8220;Home&#8221;,   &#8220;url&#8221;: &#8220;\/&#8221;},<br \/>\n    {&#8220;label&#8221;: &#8220;Tech&#8221;,   &#8220;url&#8221;: &#8220;\/category\/tech&#8221;},<br \/>\n    {&#8220;label&#8221;: &#8220;Airbnb&#8221;, &#8220;url&#8221;: &#8220;\/tag\/airbnb&#8221;}<br \/>\n  ]<br \/>\nCommand used:<br \/>\n  python source\/pipeline\/004_step_4_breadcrumb_proposal.py \\<br \/>\n    &#8211;limit 100 &#8211;taxonomy post_tag &#8211;no-dry-run<\/p>\n<p>WordPress plugin demo \u2014 The breadcrumb-migration plugin imports the<br \/>\nvalidated JSON proposals back into WordPress. I show how the admin UI<br \/>\ndisplays the enriched proposals and how the structured breadcrumb data<br \/>\nappears on tag archive pages in the Docker environment.<\/p>\n<p>Stack used:<br \/>\n&#8211; Python 3.9 + Wikidata REST API<br \/>\n&#8211; MySQL custom tables alongside WordPress core<br \/>\n&#8211; breadcrumb-migration WordPress plugin<br \/>\n&#8211; Docker local WordPress environment (localhost:8080 \/ localhost:8081)<\/p>\n<p>Why this matters:<br \/>\nThe JSON breadcrumb proposals are the bridge between raw taxonomy strings<br \/>\nand structured, machine-readable content. Schema-markup breadcrumbs signal<br \/>\nto search engines AND AI agents where each page sits in your site<br \/>\nhierarchy. That is critical for both classical SEO link equity and GEO \u2014<br \/>\nmaking your content usable by LLMs that reason over structured knowledge,<br \/>\nnot free-form HTML.<\/p>\n<p>Full article: https:\/\/wp.me\/p3Vuhl-3rb<br \/>\nGitHub: https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_seo_ia_semantic_breadcrumb_webmcp<\/p>\n<p>Missed Part 1? Watch the setup + Steps 1 and 2 first.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Part 2 of 2 | AI-Powered WordPress Taxonomy Migration Continuing from Part 1 \u2014 Step 3 (Wikidata enrichment) has finished processing 100 WordPress tags. Now&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/videos\/wordpress-taxonomy-pipeline-pt-2-wikidata-breadcrumb-json-wp-plugin-demo\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">WordPress Taxonomy Pipeline Pt.2: Wikidata + Breadcrumb JSON &#038; WP Plugin Demo<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":11806,"comment_status":"open","ping_status":"closed","template":"","bf_videos_manager_tag":[2707,2668,3244,2686,2752,2702,2800,2698,2670,2684,2683,2757,2840,2846,2672,2745,2749],"bf_videos_manager_cat":[2729,2700,2681,2682,2678,2679,2680],"class_list":["post-13223","bf_videos_manager","type-bf_videos_manager","status-publish","has-post-thumbnail","hentry","bf_videos_manager_tag-agile","bf_videos_manager_tag-ai","bf_videos_manager_tag-ai-generated","bf_videos_manager_tag-cms","bf_videos_manager_tag-development","bf_videos_manager_tag-docker","bf_videos_manager_tag-ia","bf_videos_manager_tag-json","bf_videos_manager_tag-mysql","bf_videos_manager_tag-nlp","bf_videos_manager_tag-p-o","bf_videos_manager_tag-plugin","bf_videos_manager_tag-po","bf_videos_manager_tag-poc","bf_videos_manager_tag-python","bf_videos_manager_tag-wordpress","bf_videos_manager_tag-workflow","bf_videos_manager_cat-agile","bf_videos_manager_cat-anaconda","bf_videos_manager_cat-development","bf_videos_manager_cat-experiences","bf_videos_manager_cat-python","bf_videos_manager_cat-tutorials","bf_videos_manager_cat-videos"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager\/13223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/bf_videos_manager"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=13223"}],"version-history":[{"count":2,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager\/13223\/revisions"}],"predecessor-version":[{"id":13225,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager\/13223\/revisions\/13225"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/11806"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=13223"}],"wp:term":[{"taxonomy":"bf_videos_manager_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager_tag?post=13223"},{"taxonomy":"bf_videos_manager_cat","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/bf_videos_manager_cat?post=13223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}