{"id":353,"date":"2026-07-10T06:31:00","date_gmt":"2026-07-10T06:31:00","guid":{"rendered":"https:\/\/tools.dwiyanti.com\/blog\/?p=353"},"modified":"2026-07-10T06:31:01","modified_gmt":"2026-07-10T06:31:01","slug":"author-schema","status":"publish","type":"post","link":"https:\/\/tools.dwiyanti.com\/blog\/author-schema","title":{"rendered":"Author Schema"},"content":{"rendered":"<pre style=\"white-space:pre-wrap;\">\nKODE DARI HTTPS:\/\/ME.DWIYANTI.COM\n----\n\/* Author Menambahkan schema markup lengkap ke postingan dan halaman BlogPosting 2 *\/\nfunction add_complete_author_schema() {\n    \/\/ Tampilkan hanya di single post dan halaman\n    if (is_single() || is_page()) {\n        global $post;\n        $published = get_the_date('c', $post);\n        $modified = get_the_modified_date('c', $post);\n\n        $images = [];\n\n        \/\/ 1. Cek featured image dan tambahkan dulu ke list\n        if (has_post_thumbnail($post->ID)) {\n            $image_url = get_the_post_thumbnail_url($post->ID, 'full');\n            $image_id = get_post_thumbnail_id($post->ID);\n            $image_meta = wp_get_attachment_metadata($image_id);\n            $width = isset($image_meta['width']) ? $image_meta['width'] : 1200;\n            $height = isset($image_meta['height']) ? $image_meta['height'] : 630;\n\n            $images[] = [\n                \"@type\" => \"ImageObject\",\n                \"url\" => $image_url,\n                \"width\" => $width,\n                \"height\" => $height\n            ];\n        }\n\n        \/\/ 1.1 Tambahkan gambar manual yang aku mau\n        $fallback_gallery = [\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/dwi-yanti-seo-specialist.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Rank-1-Google-SERP.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Bing-Copilot.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Google-Overview.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Technical-SEO.jpg\"\n        ];\n\n        foreach ($fallback_gallery as $fallback_url) {\n            \/\/ Hindari duplikat\n            $url_exists = false;\n            foreach ($images as $existing_image) {\n                if ($existing_image['url'] == $fallback_url) {\n                    $url_exists = true;\n                    break;\n                }\n            }\n\n            if (!$url_exists) {\n                $images[] = [\n                    \"@type\" => \"ImageObject\",\n                    \"url\" => $fallback_url,\n                    \"width\" => 1200,\n                    \"height\" => 630\n                ];\n            }\n        }\n\n        \/\/ 2. Ambil gambar dari isi konten\n        preg_match_all('\/<img[^>]+src=[\"\\']([^\"\\']+)[\"\\']\/i', $post->post_content, $matches);\n\n        if (!empty($matches[1])) {\n            foreach ($matches[1] as $img_url) {\n                \/\/ Hindari duplikat\n                $url_exists = false;\n                foreach ($images as $existing_image) {\n                    if ($existing_image['url'] == $img_url) {\n                        $url_exists = true;\n                        break;\n                    }\n                }\n\n                if (!$url_exists) {\n                    $images[] = [\n                        \"@type\" => \"ImageObject\",\n                        \"url\" => $img_url,\n                        \"width\" => 1200,\n                        \"height\" => 630\n                    ];\n                    if (count($images) >= 3) break; \/\/ ambil maksimal 3 gambar\n                }\n            }\n        }\n\n        \/\/ 3. Fallback jika tidak ada gambar sama sekali\n        if (empty($images)) {\n            $fallback_urls = [\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/dwi-yanti-seo-specialist.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Rank-1-Google-SERP.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Bing-Copilot.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Achieve-Google-Overview.jpg\",\n                \"https:\/\/me.dwiyanti.com\/wp-content\/themes\/dwee\/assets\/images\/Dwi-Yanti-Technical-SEO.jpg\"\n            ];\n\n            foreach ($fallback_urls as $url) {\n                $images[] = [\n                    \"@type\" => \"ImageObject\",\n                    \"url\" => $url,\n                    \"width\" => 1200,\n                    \"height\" => 630\n                ];\n            }\n        }\n\n        \/\/ Tentukan tipe schema\n        $schema_type = is_page() ? 'WebPage' : 'BlogPosting';\n\n        \/\/ Buat array schema\n        $schema = [\n            \"@context\" => \"https:\/\/schema.org\",\n            \"@type\" => $schema_type,\n            \"headline\" => get_the_title(),\n            \"url\" => get_permalink(),\n            \"datePublished\" => $published,\n            \"dateModified\" => $modified,\n            \"image\" => $images,\n            \"author\" => [\n                \"@type\" => \"Person\",\n                \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n                \"name\" => \"Dwi Yanti\"\n            ],\n            \"publisher\" => [\n                \"@type\" => \"Person\",\n                \"@id\" => \"https:\/\/me.dwiyanti.com\/#dwi-yanti\",\n                \"name\" => \"Dwi Yanti\"\n            ]\n        ];\n\n        echo \"\\n\" . '<script type=\"application\/ld+json\">' . wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . '<\/script>' . \"\\n\";\n    }\n}\nadd_action('wp_head', 'add_complete_author_schema');\n\/\/ END Author Schema\n<\/pre>","protected":false},"excerpt":{"rendered":"KODE DARI HTTPS:\/\/ME.DWIYANTI.COM &#8212;- \/* Author Menambahkan schema markup lengkap ke postingan dan halaman BlogPosting 2 *\/ function add_complete_author_schema() { \/\/ Tampilkan hanya di single post dan halaman if (is_single() || is_page()) { global $post; $published = get_the_date(&#8216;c&#8217;, $post); $modified = get_the_modified_date(&#8216;c&#8217;, $post); $images = []; \/\/ 1. Cek featured image dan tambahkan dulu ke [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-353","post","type-post","status-publish","format-standard","hentry","category-schema"],"_links":{"self":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/353","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=353"}],"version-history":[{"count":1,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/353\/revisions"}],"predecessor-version":[{"id":354,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/posts\/353\/revisions\/354"}],"wp:attachment":[{"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/media?parent=353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/categories?post=353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tools.dwiyanti.com\/blog\/wp-json\/wp\/v2\/tags?post=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}