Я пытаюсь удалить structured data
что Woocommerce добавляет на страницы продукта.
Я провел некоторое исследование и обнаружил, что WC_Structured_Data::generate_product_data()
генерирует разметку структурированных данных. Это зацепило в woocommerce_single_product_summary
действие крюк в woocommerce/templates/content-single-product.php
файл шаблона.
Я попытался, добавив следующий код в functions.php
remove_action( 'woocommerce_single_product_summary', 'WC_Structured_Data::generate_product_data()', 60 );
Таким образом, структурированные данные не будут добавлены Woocommerce, но это не работает…
Я делаю что-то неправильно? Есть ли другой способ сделать то, что я пытаюсь достичь?
Вместо этого вы можете использовать специальный фильтр 'woocommerce_structured_data_product'
который находится в WC_Structured_Data
за generate_product_data()
метод обнулить вывод структурированных данных на отдельных страницах продукта:
add_filter( 'woocommerce_structured_data_product', 'structured_data_product_nulled', 10, 2 );
function structured_data_product_nulled( $markup, $product ){
if( is_product() ) {
$markup = '';
}
return $markup;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Я подозреваю, что люди хотят удалить вкладки по умолчанию, и они приходят сюда после того, как они видят Woocommerce content-single-product.php
шаблон. В этом шаблоне вы видите, что generate_product_data()
подключен с приоритетом 60.
После осмотра крючков, которые работают на woocommerce_single_product_summary
,
Вы можете легко удалить вкладки с помощью:
remove_action( 'woocommerce_single_product_summary', 'woocommerce_output_product_data_tabs', 60 );
Я думаю, что Woocommerce забыл упомянуть эту add_action.