การซ่อนฟังก์ชัน Rich Snippets เริ่มต้นใน Magento 2
เผยแพร่แล้ว: 2016-09-08หากคุณมาที่หน้านี้ คุณต้องรู้ว่า Rich Snippets คืออะไรและทำงานอย่างไรใน Magento 2
โดยรวมแล้ว มาร์กอัปข้อมูลที่มีโครงสร้างเป็นคุณสมบัติที่ยอดเยี่ยมของแพลตฟอร์มอีคอมเมิร์ซรุ่นที่สอง Schema.org ถูกเพิ่มเป็นเทมเพลตเริ่มต้น ซึ่งช่วยให้ผู้ค้าจัดเตรียมผลการค้นหาไซต์ของตนด้วยราคา การให้คะแนน บทวิจารณ์ หรือค่ามาร์กอัปอื่นๆ ได้ในไม่กี่คลิก
อย่างไรก็ตาม มีบางกรณีที่คุณอาจต้องการปิดใช้งานฟังก์ชันตัวอย่างข้อมูลสื่อสมบูรณ์ที่เป็นค่าเริ่มต้น เหตุผลในการที่สามารถ:
- ปัญหารูปแบบราคา — ขณะนี้รูปแบบที่ใช้โดย Magento 2 ไม่สอดคล้องกับข้อกำหนด schema.Org ล่าสุด ซึ่งอาจทำให้เกิดข้อผิดพลาดต่อไปนี้:

- ขัดแย้ง กับส่วนขยายมาร์กอัปข้อมูลที่มีโครงสร้าง 3 มิติ
- ปัญหาเกี่ยวกับผลิตภัณฑ์ของ Google — ผลิตภัณฑ์ ประเภทนี้อาจมีราคาแตกต่างกัน (เช่น MSRP) ซึ่งจะทำให้เกิดข้อขัดแย้งกับตัวอย่างข้อมูลสื่อสมบูรณ์ของ Magento 2 ที่เป็นค่าเริ่มต้น
ขออภัย จนถึง v.2.1.1 เป็นไปไม่ได้ที่จะปิดใช้งานฟังก์ชันตัวอย่างข้อมูลสื่อสมบูรณ์ที่เป็นค่าเริ่มต้นผ่านการ ตั้งค่า Config ดังนั้น คุณต้องมีวิธีแก้ปัญหา
ในบทความนี้ ผมจะบอกคุณถึงวิธีปิดใช้งานมาร์กอัปข้อมูลที่มีโครงสร้างเริ่มต้นผ่านการสร้างส่วนขยายเพียงเล็กน้อยแต่มีประโยชน์มากสำหรับ Magento 2
ขั้นแรก มาสร้างสภาพแวดล้อมของส่วนขยายกัน
การสร้างส่วนขยาย
เรียกมันว่า ' Owner_Custom ' (แต่คุณสามารถเลือกชื่อใดก็ได้ที่คุณต้องการ)
ถัดไป ไปที่แอพ/โค้ด และสร้างโฟลเดอร์ ' Owner ' ที่นั่น ภายในโฟลเดอร์นี้ ให้สร้างโฟลเดอร์ใหม่ชื่อ ' กำหนดเอง ' — มันจะเป็นโฟลเดอร์รูทสำหรับส่วนขยายของเรา
จากที่นี่ เราสร้างไฟล์ต่อไปนี้:
ไฟล์: register.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Owner_Custom',
__DIR__
);ไฟล์: etc/module.xml
<?xml version="1.0"?> <config xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Owner_Custom" setup_version="0.0.1"/> </config>
ในขั้นตอนต่อไป ให้ติดตั้งส่วนขยายผ่านคอนโซล:
php bin/magento setup:upgrade — สร้างต่อไป
เสร็จสิ้น ตอนนี้ส่วนขยายของเราสามารถพบได้ในรายการโมดูลทั้งหมดภายใต้แผงการดูแลระบบ:
php bin/magento โมดูล:สถานะ
2. การลบมาร์กอัปข้อมูลเริ่มต้น
เมื่อสภาพแวดล้อมของส่วนขยายพร้อม เราสามารถลงมือสร้างไฟล์เลย์เอาต์ ที่ซึ่งเวทมนตร์ทั้งหมดเกิดขึ้น
ไฟล์: view/frontend/layout/catalog_product_view.xml
<?xml version="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<attribute name="itemtype" remove="true" ifconfig="mageworx_seo/markup/product/rs_enabled"/>
<attribute name="itemscope" remove="true" ifconfig="mageworx_seo/markup/product/rs_enabled"/>
</body>
</page>
สำคัญ
อย่าลืมอัปเดตแคชทุกครั้งที่คุณเปลี่ยนแปลงไฟล์
ในโค้ดส่วนนี้ เราจะเปลี่ยนพารามิเตอร์ที่ใช้สำหรับการจัดรูปแบบมาร์กอัปข้อมูลที่มีโครงสร้าง หลังจากที่เราใช้สิ่งนี้ มาร์กอัปจะมีเฉพาะข้อเสนอของเรา เช่น:

อย่างที่คุณเห็น หลังจากการปรับเปลี่ยนนี้ Google จะหยุดแสดงคำเตือนในส่วน ' ข้อเสนอ '
มาเพิ่มบรรทัดโค้ดเพิ่มเติมกัน:
<?xml version="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<attribute name="itemtype" remove="true"/>
<attribute name="itemscope" remove="true"/>
<referenceBlock name="product.price.final">
<อาร์กิวเมนต์>
<argument name="zone" xsi:type="boolean">เท็จ</argument>
</arguments>
</referenceBlock>
</body>
</page>โดยการเพิ่มชิ้นส่วนเหล่านี้ เราได้ลบพารามิเตอร์ที่รับผิดชอบในการทำเครื่องหมายบล็อกนี้เป็น 'ข้อเสนอ' ด้วยเหตุนี้ เครื่องมือของ Google จึงไม่ตรวจพบข้อมูลใดๆ ที่อาจใช้สำหรับ Rich Snippets ที่นี่:

และเหลืออีกหนึ่งสัมผัสสุดท้ายที่ต้องทำ
หากต้องการปิดใช้ตัวอย่างข้อมูลสื่อสมบูรณ์เริ่มต้นสำหรับผลิตภัณฑ์ทุกประเภท คุณต้องเพิ่มไฟล์อีก 2 ไฟล์ อันนี้สำหรับผลิตภัณฑ์ที่ดาวน์โหลดได้:

ไฟล์: view/frontend/layout/catalog_product_view_type_downloadable.xml
<?xml version="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="product.price.final.copy">
<อาร์กิวเมนต์>
<argument name="zone" xsi:type="boolean">เท็จ</argument>
</arguments>
</referenceContainer>
</body>
</page>
และนี่คือสำหรับผลิตภัณฑ์มัด:
ไฟล์: view/frontend/layout/catalog_product_view_type_bundle.xml
<?xml version="1.0"?>
<page xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="product.price.render.bundle.customization">
<อาร์กิวเมนต์>
<argument name="zone" xsi:type="boolean">เท็จ</argument>
</arguments>
</referenceBlock>
</body>
</page>
สำคัญ
โปรดทราบว่าหากผลิตภัณฑ์บางรายการในร้านค้าวีโอไอพีของคุณได้รับการตรวจสอบแล้ว บทวิจารณ์นี้จะรวมอยู่ในมาร์กอัปเริ่มต้น ซึ่งอาจทำให้เกิดข้อผิดพลาดต่อไปนี้:

เนื่องจากมันถูกฮาร์ดโค้ดในไฟล์ธีมของ Magento เพื่อลบออก คุณต้องเขียนไฟล์นี้ใหม่:
vendor/magento/module-review/view/frontend/templates/helper/summary.phtml
คัดลอกเนื้อหาไฟล์ลงใน:
แอพ/ออกแบบ/ส่วนหน้า/[แพ็คเกจ]/[ธีม]/templates/helper/summary.phtml
และลบมาร์กอัป:
(itemprop=“aggregateRating” itemscope itemtype=“https://schema.org/AggregateRating” ; itemprop=“bestRating” ; itemprop=“ratingValue” ; itemprop=“reviewCount” )
เป็นผลให้คุณควรได้รับสิ่งนี้ (สำหรับ Magento 2.1x) :
<?php
/**
* ลิขสิทธิ์ 2016 Magento สงวนลิขสิทธิ์.
* ดู COPYING.txt สำหรับรายละเอียดใบอนุญาต
*/
// @codingStandardsIgnoreFile
?>
<?php $url = $block->getReviewsUrl() . '#รีวิว'; ?>
<?php $urlForm = $block->getReviewsUrl() . '#รีวิว-แบบฟอร์ม'; ?>
<?php if ($block->getReviewsCount()): ?>
<?php $คะแนน = $block->getRatingSummary(); ?>
<div class="product-reviews-summary<?php echo !$rating ? ' no-rating' : ''?>">
<?php ถ้า ($ เรต):?>
<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>% ของ <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> <span><?php /* @escapeNotVerified */ echo($block->getReviewsCount() == 1) ? __('รีวิว') : __('บทวิจารณ์') ?></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 __('Be the first to review this product') ?>
</a>
</div>
</div>
<?php endif; ?>และสุดท้าย นี่คือวิธีที่คุณสามารถเปิด/ปิดส่วนขยายที่กำหนดเองของเรา:
โมดูล php bin/magento: เปิดใช้งาน Owner_Custom
โมดูล php bin/magento: ปิดการใช้งาน Owner_Custom
อ้อ และอย่าลืมรีเฟรชแคชเพื่อให้การเปลี่ยนแปลงทั้งหมดมีผล
ที่เป็นพื้นมัน
หากคุณมีคำถามเกี่ยวกับหัวข้อนี้ โปรดแสดงความคิดเห็นในส่วนด้านล่าง
