{"id":6642,"date":"2026-03-22T23:29:30","date_gmt":"2026-03-22T22:29:30","guid":{"rendered":"https:\/\/a360.pl\/?p=6642"},"modified":"2026-03-23T10:55:49","modified_gmt":"2026-03-23T09:55:49","slug":"ldjson-vs-word","status":"publish","type":"post","link":"https:\/\/a360.pl\/en\/ldjson-vs-word\/","title":{"rendered":"Structured Data vs WordPress"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><strong>The Impact of Rich Results on Online Visibility.<\/strong><\/h1>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:28% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone-683x1024.avif\" alt=\"\" class=\"wp-image-6256 size-full\" srcset=\"https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone-683x1024.avif 683w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone-200x300.avif 200w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone-768x1152.avif 768w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone-600x900.avif 600w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/02\/rozszezone.avif 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Rich results\u2014that is, all additional content formats in search results, on maps, in social media, or on listing pages\u2014have become one of the most important factors influencing brand visibility. In a world where users scan content in a fraction of a second, it is these \u201cextras\u201d that determine whether someone will pause to look at your offer.<\/p>\n<\/div><\/div>\n\n\n\n<p>Why are rich snippets so important?<\/p>\n\n\n\n<p>They grab attention. Featured snippets, rich snippets, images, ratings, FAQs, and product carousels increase the likelihood that a user will click on your content rather than your competitors\u2019.<\/p>\n\n\n\n<p>They boost credibility Reviews, star ratings, structured data, and more comprehensive information build trust even before the user visits the page.<\/p>\n\n\n\n<p>They improve CTR Better visibility = higher click-through rate. And a higher CTR signals to algorithms that your content is valuable.<\/p>\n\n\n\n<p>They take up more space in search results. Rich results can \u201cdominate\u201d the screen\u2014especially on mobile devices. This is a real advantage over the competition.<\/p>\n\n\n\n<p>They support local SEO. Google Maps extensions, photos, videos, virtual tours, and even short posts on your business profile increase visibility in local search results.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Co warto wdro\u017cy\u0107?Structured Data (Schema)<\/strong><\/h2>\n\n\n\n<p>Extensions in Google Business Profile<\/p>\n\n\n\n<p>Reviews and Ratings<\/p>\n\n\n\n<p>Photos, Videos, and 360\u00b0 Virtual Tours<\/p>\n\n\n\n<p>FAQs and Q&#038;A Sections<\/p>\n\n\n\n<p>Product Carousels<\/p>\n\n\n\n<p>Link and Information Extensions in Ads<\/p>\n\n\n\n<p>Summary<\/p>\n\n\n\n<p>Extensions are no longer just an \u201cadd-on\u201d but the foundation of effective visibility. They help you stand out, build trust, and increase traffic\u2014all without having to increase your advertising budget. It\u2019s worth treating them as a strategic element of your online presence.<\/p>\n\n\n\n<p>Our ad-free WP ZIP plugin, etc.: Download plugin, WP->Plugins->Add plugin->Upload plugin<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"82\" src=\"https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-1024x82.avif\" alt=\"\" class=\"wp-image-6643\" srcset=\"https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-1024x82.avif 1024w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-300x24.avif 300w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-768x62.avif 768w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-1536x124.avif 1536w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-2048x165.avif 2048w, https:\/\/a360.pl\/wp-content\/uploads\/2026\/03\/Zrzut-ekranu-2026-03-22-o-23.25.05-600x48.avif 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Menu pluginu: WP->Settings->Auto Schema &#038; Meta<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><?php\n\/**\n * Plugin Name: Auto Schema &#038; Meta (PRO Graph)\n * Description: Meta-description, OpenGraph, JSON-LD @graph: Organization, LocalBusiness, WebSite\/WebPage\/Article\/Product, Breadcrumbs, FAQ, Reviews, SearchBox, CPT.\n * Version: 3.0\n * Author: Igor\n *\/\n\nif (!defined('ABSPATH')) exit;\n\n\/* -------------------------------------------------------\n   HELPERS\n------------------------------------------------------- *\/\n\nfunction asm_excerpt($content, $len = 160) {\n    $t = wp_strip_all_tags($content);\n    $t = trim(preg_replace('\/\\s+\/', ' ', $t));\n    return mb_strlen($t) > $len ? mb_substr($t, 0, $len) . '...' : $t;\n}\n\nfunction asm_opt($key, $default = '') {\n    $o = get_option('asm_settings', &#91;]);\n    return $o&#91;$key] ?? $default;\n}\n\nfunction asm_opt_bool($key, $default = true) {\n    $o = get_option('asm_settings', &#91;]);\n    if (!isset($o&#91;$key])) return $default;\n    return (bool)$o&#91;$key];\n}\n\n\/* -------------------------------------------------------\n   SETTINGS PAGE\n------------------------------------------------------- *\/\n\nadd_action('admin_menu', function() {\n    add_options_page('Auto Schema & Meta', 'Auto Schema & Meta', 'manage_options', 'asm-settings', 'asm_settings_page');\n});\n\nfunction asm_settings_page() {\n    if (!current_user_can('manage_options')) return;\n\n    if (isset($_POST&#91;'asm_save']) && check_admin_referer('asm_save_settings','asm_nonce')) {\n        $opts = &#91;\n            \/\/ basic\n            'org_name'   => sanitize_text_field($_POST&#91;'org_name'] ?? ''),\n            'org_logo'   => esc_url_raw($_POST&#91;'org_logo'] ?? ''),\n            'og_default' => esc_url_raw($_POST&#91;'og_default'] ?? ''),\n\n            \/\/ toggles\n            'enable_org'         => !empty($_POST&#91;'enable_org']),\n            'enable_breadcrumbs' => !empty($_POST&#91;'enable_breadcrumbs']),\n            'enable_faq'         => !empty($_POST&#91;'enable_faq']),\n            'enable_product'     => !empty($_POST&#91;'enable_product']),\n            'enable_article'     => !empty($_POST&#91;'enable_article']),\n            'enable_local'       => !empty($_POST&#91;'enable_local']),\n            'enable_searchbox'   => !empty($_POST&#91;'enable_searchbox']),\n            'enable_cpt'         => !empty($_POST&#91;'enable_cpt']),\n\n            \/\/ LocalBusiness\n            'local_type'   => sanitize_text_field($_POST&#91;'local_type'] ?? 'LocalBusiness'),\n            'local_street' => sanitize_text_field($_POST&#91;'local_street'] ?? ''),\n            'local_postal' => sanitize_text_field($_POST&#91;'local_postal'] ?? ''),\n            'local_city'   => sanitize_text_field($_POST&#91;'local_city'] ?? ''),\n            'local_country'=> sanitize_text_field($_POST&#91;'local_country'] ?? 'PL'),\n            'local_phone'  => sanitize_text_field($_POST&#91;'local_phone'] ?? ''),\n            'local_email'  => sanitize_email($_POST&#91;'local_email'] ?? ''),\n            'local_nip'    => sanitize_text_field($_POST&#91;'local_nip'] ?? ''),\n            'local_hours'  => sanitize_textarea_field($_POST&#91;'local_hours'] ?? ''),\n            'local_contact_type' => sanitize_text_field($_POST&#91;'local_contact_type'] ?? 'customer support'),\n        ];\n        update_option('asm_settings', $opts);\n        echo '<div class=\"updated\"><p>Zapisano.<\/p><\/div>';\n    }\n\n    $org_name   = asm_opt('org_name', get_bloginfo('name'));\n    $org_logo   = asm_opt('org_logo', '');\n    $og_default = asm_opt('og_default', '');\n\n    ?>\n    <div class=\"wrap\">\n        <h1>Auto Schema & Meta \u2013 Ustawienia<\/h1>\n        <form method=\"post\">\n            <?php wp_nonce_field('asm_save_settings','asm_nonce'); ?>\n\n            <h2>Podstawowe<\/h2>\n            <table class=\"form-table\">\n                <tr>\n                    <th>Organization name<\/th>\n                    <td><input type=\"text\" name=\"org_name\" class=\"regular-text\" value=\"<?php echo esc_attr($org_name); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Organization logo URL<\/th>\n                    <td><input type=\"text\" name=\"org_logo\" class=\"regular-text\" value=\"<?php echo esc_url($org_logo); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Domy\u015blny obraz OpenGraph<\/th>\n                    <td><input type=\"text\" name=\"og_default\" class=\"regular-text\" value=\"<?php echo esc_url($og_default); ?>\"><\/td>\n                <\/tr>\n            <\/table>\n\n            <h2>W\u0142\u0105cz\/wy\u0142\u0105cz elementy<\/h2>\n            <table class=\"form-table\">\n                <tr>\n                    <th>Organization<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_org\" <?php checked(asm_opt_bool('enable_org', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>Breadcrumbs<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_breadcrumbs\" <?php checked(asm_opt_bool('enable_breadcrumbs', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>FAQ<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_faq\" <?php checked(asm_opt_bool('enable_faq', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>Article schema<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_article\" <?php checked(asm_opt_bool('enable_article', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>Product schema<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_product\" <?php checked(asm_opt_bool('enable_product', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>LocalBusiness<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_local\" <?php checked(asm_opt_bool('enable_local', false)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>Sitelinks SearchBox<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_searchbox\" <?php checked(asm_opt_bool('enable_searchbox', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n                <tr>\n                    <th>Custom Post Types<\/th>\n                    <td><label><input type=\"checkbox\" name=\"enable_cpt\" <?php checked(asm_opt_bool('enable_cpt', true)); ?>> w\u0142\u0105cz<\/label><\/td>\n                <\/tr>\n            <\/table>\n\n            <h2>LocalBusiness<\/h2>\n            <table class=\"form-table\">\n                <tr>\n                    <th>Typ (np. LocalBusiness, Store, Restaurant)<\/th>\n                    <td><input type=\"text\" name=\"local_type\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_type', 'LocalBusiness')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Ulica<\/th>\n                    <td><input type=\"text\" name=\"local_street\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_street')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Kod pocztowy<\/th>\n                    <td><input type=\"text\" name=\"local_postal\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_postal')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Miasto<\/th>\n                    <td><input type=\"text\" name=\"local_city\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_city')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Kraj (ISO, np. PL)<\/th>\n                    <td><input type=\"text\" name=\"local_country\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_country', 'PL')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Telefon<\/th>\n                    <td><input type=\"text\" name=\"local_phone\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_phone')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Email<\/th>\n                    <td><input type=\"email\" name=\"local_email\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_email')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>NIP<\/th>\n                    <td><input type=\"text\" name=\"local_nip\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_nip')); ?>\"><\/td>\n                <\/tr>\n                <tr>\n                    <th>Godziny otwarcia (np. Mo-Fr 09:00-17:00)<\/th>\n                    <td><textarea name=\"local_hours\" class=\"large-text\" rows=\"3\"><?php echo esc_textarea(asm_opt('local_hours')); ?><\/textarea><\/td>\n                <\/tr>\n                <tr>\n                    <th>Contact type (np. customer support)<\/th>\n                    <td><input type=\"text\" name=\"local_contact_type\" class=\"regular-text\" value=\"<?php echo esc_attr(asm_opt('local_contact_type', 'customer support')); ?>\"><\/td>\n                <\/tr>\n            <\/table>\n\n            <p><button class=\"button button-primary\" name=\"asm_save\">Zapisz<\/button><\/p>\n        <\/form>\n    <\/div>\n    <?php\n}\n\n\/* -------------------------------------------------------\n   META DESCRIPTION\n------------------------------------------------------- *\/\n\nadd_action('wp_head', function() {\n    if (is_singular()) {\n        global $post;\n        $desc = asm_excerpt($post->post_content);\n    } elseif (is_front_page()) {\n        $desc = get_bloginfo('description');\n    } else return;\n\n    echo '<meta name=\"description\" content=\"'.esc_attr($desc).'\">'.\"\\n\";\n}, 5);\n\n\/* -------------------------------------------------------\n   OPEN GRAPH\n------------------------------------------------------- *\/\n\nadd_action('wp_head', function() {\n    global $post;\n\n    if (is_singular()) {\n        $title = get_the_title($post);\n        $url   = get_permalink($post);\n        $desc  = asm_excerpt($post->post_content);\n        $type  = 'article';\n\n        $image = '';\n        if (has_post_thumbnail($post)) {\n            $img = wp_get_attachment_image_src(get_post_thumbnail_id($post), 'full');\n            $image = $img&#91;0] ?? '';\n        }\n    } elseif (is_front_page()) {\n        $title = get_bloginfo('name');\n        $url   = home_url();\n        $desc  = get_bloginfo('description');\n        $type  = 'website';\n        $image = '';\n    } else return;\n\n    if (!$image) $image = asm_opt('og_default', '');\n\n    echo '<meta property=\"og:title\" content=\"'.esc_attr($title).'\">'.\"\\n\";\n    echo '<meta property=\"og:description\" content=\"'.esc_attr($desc).'\">'.\"\\n\";\n    echo '<meta property=\"og:type\" content=\"'.$type.'\">'.\"\\n\";\n    echo '<meta property=\"og:url\" content=\"'.esc_url($url).'\">'.\"\\n\";\n    if ($image) echo '<meta property=\"og:image\" content=\"'.esc_url($image).'\">'.\"\\n\";\n}, 6);\n\n\/* -------------------------------------------------------\n   BREADCRUMBS\n------------------------------------------------------- *\/\n\nfunction asm_breadcrumbs() {\n    if (!asm_opt_bool('enable_breadcrumbs', true)) return &#91;];\n\n    $items = &#91;];\n    $pos = 1;\n\n    $items&#91;] = &#91;\n        \"@type\" => \"ListItem\",\n        \"position\" => $pos++,\n        \"name\" => get_bloginfo('name'),\n        \"item\" => home_url()\n    ];\n\n    if (is_singular()) {\n        global $post;\n\n        if ($post->post_type === 'post') {\n            $cat = get_the_category($post->ID);\n            if (!empty($cat)) {\n                $cat = $cat&#91;0];\n                $items&#91;] = &#91;\n                    \"@type\" => \"ListItem\",\n                    \"position\" => $pos++,\n                    \"name\" => $cat->name,\n                    \"item\" => get_category_link($cat)\n                ];\n            }\n        }\n\n        if ($post->post_type === 'page') {\n            $anc = array_reverse(get_post_ancestors($post));\n            foreach ($anc as $aid) {\n                $items&#91;] = &#91;\n                    \"@type\" => \"ListItem\",\n                    \"position\" => $pos++,\n                    \"name\" => get_the_title($aid),\n                    \"item\" => get_permalink($aid)\n                ];\n            }\n        }\n\n        $items&#91;] = &#91;\n            \"@type\" => \"ListItem\",\n            \"position\" => $pos++,\n            \"name\" => get_the_title($post),\n            \"item\" => get_permalink($post)\n        ];\n    }\n\n    return $items;\n}\n\n\/* -------------------------------------------------------\n   FAQ SHORTCODES (wiele blok\u00f3w na stronie)\n------------------------------------------------------- *\/\n\nglobal $asm_faq;\n$asm_faq = &#91;];\n\nadd_shortcode('asm_faq', function($atts, $content = '') {\n    $html = do_shortcode($content);\n    return '<div class=\"asm-faq\">'.$html.'<\/div>';\n});\n\nadd_shortcode('asm_faq_item', function($atts, $content = '') {\n    global $asm_faq;\n    $q = $atts&#91;'question'] ?? '';\n    $a = $content;\n\n    if ($q && $a && asm_opt_bool('enable_faq', true)) {\n        $asm_faq&#91;] = &#91;\n            \"@type\" => \"Question\",\n            \"name\"  => $q,\n            \"acceptedAnswer\" => &#91;\n                \"@type\" => \"Answer\",\n                \"text\"  => wp_strip_all_tags($a)\n            ]\n        ];\n    }\n\n    return '<div class=\"asm-faq-item\"><strong>'.esc_html($q).'<\/strong><div>'.wp_kses_post(wpautop($a)).'<\/div><\/div>';\n});\n\n\/* -------------------------------------------------------\n   MAIN JSON-LD GRAPH\n------------------------------------------------------- *\/\n\nadd_action('wp_head', function() {\n    global $post, $product, $asm_faq;\n\n    $graph = &#91;];\n\n    \/* Organization *\/\n    if (asm_opt_bool('enable_org', true)) {\n        $org = &#91;\n            \"@type\" => \"Organization\",\n            \"@id\"   => home_url('#organization'),\n            \"name\"  => asm_opt('org_name', get_bloginfo('name')),\n            \"url\"   => home_url()\n        ];\n        if (asm_opt('org_logo')) $org&#91;\"logo\"] = asm_opt('org_logo');\n        $graph&#91;] = $org;\n    }\n\n    \/* LocalBusiness *\/\n    if (asm_opt_bool('enable_local', false)) {\n        $lb = &#91;\n            \"@type\" => asm_opt('local_type', 'LocalBusiness'),\n            \"@id\"   => home_url('#localbusiness'),\n            \"name\"  => asm_opt('org_name', get_bloginfo('name')),\n            \"url\"   => home_url(),\n        ];\n\n        $street = asm_opt('local_street');\n        $postal = asm_opt('local_postal');\n        $city   = asm_opt('local_city');\n        $country= asm_opt('local_country', 'PL');\n\n        if ($street || $postal || $city || $country) {\n            $lb&#91;\"address\"] = &#91;\n                \"@type\"           => \"PostalAddress\",\n                \"streetAddress\"   => $street,\n                \"postalCode\"      => $postal,\n                \"addressLocality\" => $city,\n                \"addressCountry\"  => $country\n            ];\n        }\n\n        if (asm_opt('local_phone')) $lb&#91;\"telephone\"] = asm_opt('local_phone');\n        if (asm_opt('local_email')) $lb&#91;\"email\"] = asm_opt('local_email');\n        if (asm_opt('local_nip'))   $lb&#91;\"taxID\"] = asm_opt('local_nip');\n\n        if ($hours = asm_opt('local_hours')) {\n            \/\/ Mo\u017cesz wpisa\u0107 np. \"Mo-Fr 09:00-17:00, Sa 10:00-14:00\"\n            $lb&#91;\"openingHours\"] = array_map('trim', explode(',', $hours));\n        }\n\n        if ($ct = asm_opt('local_contact_type')) {\n            $lb&#91;\"contactPoint\"] = &#91;\n                \"@type\"       => \"ContactPoint\",\n                \"contactType\" => $ct,\n                \"telephone\"   => asm_opt('local_phone'),\n                \"email\"       => asm_opt('local_email')\n            ];\n        }\n\n        $graph&#91;] = $lb;\n    }\n\n    \/* Breadcrumbs *\/\n    $breadcrumbs = asm_breadcrumbs();\n    if (!empty($breadcrumbs)) {\n        $graph&#91;] = &#91;\n            \"@type\" => \"BreadcrumbList\",\n            \"@id\"   => home_url('#breadcrumbs'),\n            \"itemListElement\" => $breadcrumbs\n        ];\n    }\n\n    \/* WebSite + SearchBox *\/\n    if (is_front_page() || is_home()) {\n        $website = &#91;\n            \"@type\" => \"WebSite\",\n            \"@id\"   => home_url('#website'),\n            \"name\"  => get_bloginfo('name'),\n            \"url\"   => home_url()\n        ];\n\n        if (asm_opt_bool('enable_searchbox', true)) {\n            $search_url = home_url('\/?s={search_term_string}');\n            $website&#91;\"potentialAction\"] = &#91;\n                \"@type\" => \"SearchAction\",\n                \"target\" => $search_url,\n                \"query-input\" => \"required name=search_term_string\"\n            ];\n        }\n\n        $graph&#91;] = $website;\n    }\n\n    \/* Page-specific schema *\/\n    if (is_page() && !is_front_page()) {\n        $graph&#91;] = &#91;\n            \"@type\" => \"WebPage\",\n            \"@id\"   => get_permalink().'#webpage',\n            \"name\"  => get_the_title(),\n            \"url\"   => get_permalink(),\n            \"description\" => asm_excerpt($post->post_content),\n            \"isPartOf\" => &#91;\n                \"@id\" => home_url('#website')\n            ]\n        ];\n    }\n    elseif (is_single() && get_post_type() === 'post' && asm_opt_bool('enable_article', true)) {\n        $img = '';\n        if (has_post_thumbnail($post)) {\n            $i = wp_get_attachment_image_src(get_post_thumbnail_id($post), 'full');\n            $img = $i&#91;0] ?? '';\n        }\n\n        $article = &#91;\n            \"@type\" => \"Article\",\n            \"@id\"   => get_permalink().'#article',\n            \"headline\" => get_the_title(),\n            \"datePublished\" => get_the_date('c'),\n            \"dateModified\"  => get_the_modified_date('c'),\n            \"author\" => &#91;\n                \"@type\" => \"Person\",\n                \"name\"  => get_the_author()\n            ],\n            \"url\" => get_permalink(),\n            \"description\" => asm_excerpt($post->post_content),\n            \"mainEntityOfPage\" => &#91;\n                \"@type\" => \"WebPage\",\n                \"@id\"   => get_permalink().'#webpage'\n            ],\n            \"isPartOf\" => &#91;\n                \"@id\" => home_url('#website')\n            ]\n        ];\n\n        if ($img) {\n            $article&#91;\"image\"] = &#91;\n                \"@type\" => \"ImageObject\",\n                \"url\"   => $img\n            ];\n        }\n\n        if (asm_opt_bool('enable_org', true)) {\n            $article&#91;\"publisher\"] = &#91;\n                \"@type\" => \"Organization\",\n                \"@id\"   => home_url('#organization')\n            ];\n        }\n\n        $graph&#91;] = $article;\n    }\n    elseif (function_exists('is_product') && is_product() && asm_opt_bool('enable_product', true)) {\n        if (!$product) {\n            $product = wc_get_product(get_the_ID());\n        }\n        if ($product) {\n            $img = wp_get_attachment_url($product->get_image_id());\n\n            $prod = &#91;\n                \"@type\" => \"Product\",\n                \"@id\"   => get_permalink().'#product',\n                \"name\"  => $product->get_name(),\n                \"image\" => $img,\n                \"description\" => asm_excerpt($product->get_description()),\n                \"sku\" => $product->get_sku(),\n                \"offers\" => &#91;\n                    \"@type\" => \"Offer\",\n                    \"price\" => $product->get_price(),\n                    \"priceCurrency\" => get_woocommerce_currency(),\n                    \"availability\" => \"https:\/\/schema.org\/\".($product->is_in_stock() ? \"InStock\" : \"OutOfStock\"),\n                    \"url\" => get_permalink()\n                ]\n            ];\n\n            \/\/ AggregateRating z WooCommerce\n            $rating = $product->get_average_rating();\n            $count  = $product->get_rating_count();\n            if ($rating && $count) {\n                $prod&#91;\"aggregateRating\"] = &#91;\n                    \"@type\"       => \"AggregateRating\",\n                    \"ratingValue\" => $rating,\n                    \"reviewCount\" => $count\n                ];\n            }\n\n            $graph&#91;] = $prod;\n        }\n    }\n    elseif (is_singular() && asm_opt_bool('enable_cpt', true)) {\n        \/\/ Inne custom post types -> WebPage\n        $graph&#91;] = &#91;\n            \"@type\" => \"WebPage\",\n            \"@id\"   => get_permalink().'#webpage',\n            \"name\"  => get_the_title(),\n            \"url\"   => get_permalink(),\n            \"description\" => asm_excerpt($post->post_content),\n            \"isPartOf\" => &#91;\n                \"@id\" => home_url('#website')\n            ]\n        ];\n    }\n\n    \/* FAQ (wszystkie bloki na stronie) *\/\n    if (!empty($asm_faq) && asm_opt_bool('enable_faq', true)) {\n        $graph&#91;] = &#91;\n            \"@type\" => \"FAQPage\",\n            \"@id\"   => get_permalink().'#faq',\n            \"mainEntity\" => $asm_faq\n        ];\n    }\n\n    if (empty($graph)) return;\n\n    $json = &#91;\n        \"@context\" => \"https:\/\/schema.org\",\n        \"@graph\"   => $graph\n    ];\n\n    echo '<script type=\"application\/ld+json\">'.wp_json_encode($json, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES).'<\/script>'.\"\\n\";\n}, 20);\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The Impact of Rich Results on Online Visibility. Rich results\u2014that is, all additional content formats in search results, on maps, in social media, or on listing pages\u2014have become one of the most important factors influencing brand visibility. In a world where users scan content in a fraction of a second, it is these \u201cextras\u201d that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6642","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"_links":{"self":[{"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/posts\/6642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/comments?post=6642"}],"version-history":[{"count":10,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/posts\/6642\/revisions"}],"predecessor-version":[{"id":6659,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/posts\/6642\/revisions\/6659"}],"wp:attachment":[{"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/media?parent=6642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/categories?post=6642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/a360.pl\/en\/wp-json\/wp\/v2\/tags?post=6642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}