Menyembunyikan Fungsionalitas Cuplikan Kaya Default di Magento 2

Diterbitkan: 2016-09-08

Jika Anda datang ke halaman ini, Anda pasti tahu apa itu Rich Snippet dan bagaimana cara kerjanya di Magento 2.

Secara keseluruhan, markup data terstruktur adalah fitur yang cukup keren dari versi kedua platform eCommerce. Schema.org ditambahkan sebagai template default, yang memungkinkan pedagang melengkapi hasil pencarian situs mereka dengan harga, peringkat, ulasan, atau nilai markup lainnya hanya dalam beberapa klik.

Namun, ada beberapa kasus ketika Anda mungkin ingin menonaktifkan fungsionalitas cuplikan kaya default. Alasan untuk itu dapat:

  • masalah format harga — saat ini, format yang digunakan oleh Magento 2 tidak sesuai dengan skema terbaru. Persyaratan org, yang dapat memicu kesalahan berikut: 1
  • bentrok dengan beberapa ekstensi markup data terstruktur pihak 3 dimensi,
  • masalah dengan produk Google — jenis produk ini mungkin datang dengan harga yang berbeda (misalnya MSRP), yang, pada gilirannya, memicu konflik dengan cuplikan kaya default Magento 2.

Sayangnya, hingga v.2.1.1, tidak mungkin untuk menonaktifkan fungsionalitas cuplikan kaya default melalui pengaturan Config . Oleh karena itu, Anda memerlukan beberapa solusi solusi.

Pada artikel ini, saya akan memberi tahu Anda cara menonaktifkan markup data terstruktur default dengan membuat ekstensi kecil, namun sangat berguna untuk Magento 2.

Pertama, mari kita buat lingkungan ekstensi.

  1. Membuat Ekstensi

Sebut saja ' Owner_Custom ' (walaupun Anda dapat memilih nama yang Anda inginkan).

Selanjutnya, buka aplikasi/kode dan buat folder ' Pemilik ' di sana. Di dalam folder ini, buat yang baru, bernama ' Custom ' — itu akan menjadi folder root untuk ekstensi kita.

Dari sini, kami membuat file-file berikut:

FILE: registrasi.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Pemilik_Kustom',
    __DIR__
);

FILE: etc/module.xml

 <?xml versi="1.0"?>
<config xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<nama modul="Owner_Custom" setup_version="0.0.1"/>
</config>

Pada langkah selanjutnya, instal ekstensi melalui Konsol:

php bin/magento setup:upgrade — tetap dibuat

Semua selesai, sekarang ekstensi kami dapat ditemukan di daftar semua modul di bawah panel Admin:

php bin/magento modul: status

2. Menghapus markup data default

Saat lingkungan ekstensi sudah siap, kita bisa mulai membuat file tata letak, tempat semua keajaiban terjadi.

FILE: view/frontend/layout/catalog_product_view.xml

<?xml versi="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <tubuh>
        <nama atribut="itemtype" remove="true" ifconfig="mageworx_seo/markup/product/rs_enabled"/>
        <nama atribut="itemscope" remove="true" ifconfig="mageworx_seo/markup/product/rs_enabled"/>
    </tubuh>
</halaman>

PENTING

Jangan lupa untuk memperbarui cache setiap kali Anda melakukan perubahan pada file.

Di bagian kode ini, kita akan mengubah parameter yang digunakan untuk memformat markup data terstruktur. Setelah kami menerapkan ini, markup hanya akan berisi penawaran kami, misalnya:

2

Seperti yang Anda lihat, setelah manipulasi ini, Google berhenti memberikan peringatan apa pun di bagian ' Penawaran '.

Mari tambahkan beberapa baris kode lagi:

<?xml versi="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <tubuh>
        <nama atribut="itemtype" remove="true"/>
        <nama atribut="itemscope" remove="true"/>
        <referenceBlock name="product.price.final">
            <argumen>
                <argument name="zone" xsi:type="boolean">false</argument>
            </argumen>
        </referenceBlock>
    </tubuh>
</halaman>

Dengan menambahkan bagian ini, kami telah menghapus parameter yang bertanggung jawab untuk menandai blok ini sebagai 'Penawaran'. Akibatnya, alat Google tidak mendeteksi data apa pun yang dapat digunakan untuk Cuplikan Kaya di sini:

3

Dan ada satu sentuhan terakhir yang harus dilakukan.

Untuk menonaktifkan cuplikan kaya default untuk semua jenis produk, Anda perlu menambahkan 2 file lagi. Yang ini untuk produk yang dapat diunduh:

FILE: view/frontend/layout/catalog_product_view_type_downloadable.xml

<?xml versi="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <tubuh>
        <referenceContainer name="product.price.final.copy">
            <argumen>
                <argument name="zone" xsi:type="boolean">false</argument>
            </argumen>
        </referenceContainer>
    </tubuh>
</halaman>

Dan ini untuk produk bundel:

FILE: view/frontend/layout/catalog_product_view_type_bundle.xml

<?xml versi="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <tubuh>
        <referenceBlock name="product.price.render.bundle.customization">
            <argumen>
                <argument name="zone" xsi:type="boolean">false</argument>
            </argumen>
        </referenceBlock>
    </tubuh>
</halaman>

PENTING

Perhatikan bahwa jika beberapa produk di toko Magento Anda telah ditinjau, ulasan ini akan dimasukkan ke dalam markup default. Ini dapat memicu kesalahan berikut:

31e6d408642cc8cc288f6fde6f6fb0d8
Karena hardcoded dalam file tema Magento, untuk menghapusnya, Anda harus menulis ulang file ini:

 vendor/magento/module-review/view/frontend/templates/helper/summary.phtml

Salin konten file ke:

 app/design/frontend/[package]/[theme]/templates/helper/summary.phtml

dan hapus markup:

 (itemprop=“aggregateRating” itemscope itemtype=“https://schema.org/AggregateRating” ; itemprop=“bestRating” ; itemprop=“ratingValue” ; itemprop=“reviewCount” )

Akibatnya, Anda harus mendapatkan ini (untuk Magento 2.1x):

 <?php
/**
 * Hak Cipta 2016 Magento. Seluruh hak cipta.
 * Lihat COPYING.txt untuk detail lisensi.
 */

// @codingStandardsIgnoreFile

?>
<?php $url = $block->getReviewsUrl() . '#ulasan'; ?>
<?php $urlForm = $block->getReviewsUrl() . '#formulir-ulasan'; ?>
<?php if ($block->getReviewsCount()): ?>
<?php $rating = $block->getRatingSummary(); ?>
<div class="product-reviews-summary<?php echo !$rating ? ' no-rating' : ''?>">
    <?php if ($peringkat):?>
    <div class="rating-summary">
         <span class="label"><span><?php /* @escapeNotVerified */ echo __('Rating') ?>:</span></span>
         <div class="rating-result" title="<?php /* @escapeNotVerified */ echo $rating; ?>%">
             <span><span><span><?php /* @escapeNotVerified */ echo $rating; ?></span>% dari <span>100</span></span></span>
         </div>
     </div>
    <?php endif;?>
    <div class="reviews-actions">
        <a class="action view" href="<?php /* @escapeNotVerified */ echo $url ?>"><span><?php /* @escapeNotVerified */ echo $block->getReviewsCount() ?>< /span>&nbsp;<span><?php /* @escapeNotVerified */ echo($block->getReviewsCount() == 1) ? __('Ulasan') : __('Ulasan') ?></span></a>
        <a class="action add" href="<?php /* @escapeNotVerified */ echo $urlForm ?>"><?php /* @escapeNotVerified */ echo __('Add Your Review') ?></a >
    </div>
</div>
<?php elseif ($block->getDisplayIfEmpty()): ?>
<div class="product-reviews-summary empty">
    <div class="reviews-actions">
        <a class="action add" href="<?php /* @escapeNotVerified */ echo $urlForm; ?>">
            <?php /* @escapeNotVerified */ echo __('Jadilah yang pertama mengulas produk ini') ?>
        </a>
    </div>
</div>
<?php endif; ?>

Dan akhirnya, ini adalah bagaimana Anda dapat mengaktifkan/menonaktifkan ekstensi khusus kami:

php bin/magento modul: aktifkan Owner_Custom
php bin/magento modul: nonaktifkan Owner_Custom

Ah, dan jangan lupa untuk menyegarkan cache agar semua perubahan diterapkan.

Itu pada dasarnya.

Jika Anda memiliki pertanyaan tentang topik ini, jangan ragu untuk meninggalkan komentar Anda di bagian di bawah ini.