{"id":346,"date":"2026-07-08T12:01:28","date_gmt":"2026-07-08T12:01:28","guid":{"rendered":"https:\/\/tools.dwiyanti.com\/blog\/?p=346"},"modified":"2026-07-08T12:02:26","modified_gmt":"2026-07-08T12:02:26","slug":"buat-keyword-di-schema-blogposting-dan-webpage","status":"publish","type":"post","link":"https:\/\/tools.dwiyanti.com\/blog\/buat-keyword-di-schema-blogposting-dan-webpage","title":{"rendered":"Buat Keyword di Schema BlogPosting dan WebPage"},"content":{"rendered":"<pre style=\"white-space:pre-wrap;\">\nKEYWORD HANYA DARI TAG DAN KATEGORI\n\/\/ Keyword\n    function get_schema_keywords($post_id) {\n\n        $keywords = [];\n\n        \/\/ Prioritaskan tag\n        $tags = wp_get_post_tags($post_id);\n\n        foreach ($tags as $tag) {\n            $keywords[] = $tag->name;\n        }\n\n        \/\/ Jika tidak ada tag, gunakan kategori\n        if (empty($keywords)) {\n            $categories = get_the_category($post_id);\n\n            foreach ($categories as $category) {\n            $keywords[] = $category->name;\n            }\n        }\n\n        return implode(', ', array_unique($keywords));\n    }\n----\nKEYWORD DARI TAG, KATEGORI, DAN ID <code><p id=\"cantik\">Cantik itu...<\/p><\/code>\n\/\/ Keyword dengan tambahan dari ID atribut HTML\nfunction get_schema_keywords($post_id) {\n\n    $keywords = [];\n\n    \/\/ 1. Prioritaskan tag\n    $tags = wp_get_post_tags($post_id);\n    foreach ($tags as $tag) {\n        $keywords[] = $tag->name;\n    }\n\n    \/\/ 2. Jika tidak ada tag, gunakan kategori\n    if (empty($keywords)) {\n        $categories = get_the_category($post_id);\n        foreach ($categories as $category) {\n            $keywords[] = $category->name;\n        }\n    }\n\n    \/\/ 3. Ambil ID dari konten post\n    $content = get_post_field('post_content', $post_id);\n    $id_keywords = extract_ids_from_content($content);\n    \n    \/\/ Gabungkan dengan keywords yang sudah ada\n    if (!empty($id_keywords)) {\n        $keywords = array_merge($keywords, $id_keywords);\n    }\n\n    return implode(', ', array_unique($keywords));\n}\n\n\/\/ Fungsi bantuan untuk mengekstrak ID dari HTML\nfunction extract_ids_from_content($content) {\n    $ids = [];\n    \n    \/\/ Pattern untuk mencari semua atribut id\n    preg_match_all('\/\\bid=[\"\\']([^\"\\']*)[\"\\']\/', $content, $matches);\n    \n    if (!empty($matches[1])) {\n        foreach ($matches[1] as $id) {\n            \/\/ Bersihkan ID (hilangkan spasi, karakter aneh)\n            $clean_id = trim($id);\n            if (!empty($clean_id)) {\n                $ids[] = $clean_id;\n            }\n        }\n    }\n    \n    return $ids;\n}\n----\nALTERNATIF DENGAN FILTER\nfunction extract_ids_from_content($content) {\n    $ids = [];\n    \n    \/\/ Pattern untuk mencari ID\n    preg_match_all('\/\\bid=[\"\\']([^\"\\']*)[\"\\']\/', $content, $matches);\n    \n    if (!empty($matches[1])) {\n        foreach ($matches[1] as $id) {\n            $clean_id = trim($id);\n            \n            \/\/ Filter: hanya ambil ID yang valid (huruf, angka, underscore, dash)\n            if (!empty($clean_id) && preg_match('\/^[a-zA-Z0-9_-]+$\/', $clean_id)) {\n                $ids[] = $clean_id;\n            }\n        }\n    }\n    \n    return $ids;\n}\n----\nPANGGIL DI SCHEMA\n<strong>\"keywords\" => get_schema_keywords($post->ID),<\/strong>\n<\/pre>","protected":false},"excerpt":{"rendered":"KEYWORD HANYA DARI TAG DAN KATEGORI \/\/ Keyword function get_schema_keywords($post_id) { $keywords = []; \/\/ Prioritaskan tag $tags = wp_get_post_tags($post_id); foreach ($tags as $tag) { $keywords[] = $tag->name; } \/\/ Jika tidak ada tag, gunakan kategori if (empty($keywords)) { $categories = get_the_category($post_id); foreach ($categories as $category) { $keywords[] = $category->name; } } return implode(&#8216;, &#8216;, [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-346","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/comments?post=346"}],"version-history":[{"count":2,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions"}],"predecessor-version":[{"id":349,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions\/349"}],"wp:attachment":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/media?parent=346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/categories?post=346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/tags?post=346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}