การซ่อนฟังก์ชัน 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
อ้อ และอย่าลืมรีเฟรชแคชเพื่อให้การเปลี่ยนแปลงทั้งหมดมีผล
ที่เป็นพื้นมัน
หากคุณมีคำถามเกี่ยวกับหัวข้อนี้ โปรดแสดงความคิดเห็นในส่วนด้านล่าง