Плагин Yoast SEO: Код WooCommerce
protected function filter_variations( $data, $product ) {
if ( ! isset( $data['offers'] ) || $data['offers'] === [] ) {
return $data;
}
$data['@type'] = 'ProductGroup';
if ( isset( $data['sku'] ) ) {
$data['productGroupID'] = $data['sku'];
}
$data['hasVariant'] = [];
unset( $data['offers'] );
$product_variations = $product->get_available_variations();
foreach ( $product_variations as $key => $variation ) {
$variant_schema = $this->add_individual_product_variation( $product, $variation, $key );
if ( isset( $variant_schema['image'] ) ) {
$this->variation_images[] = [ '@id' => $variant_schema['image']['@id'] ];
}
$data['hasVariant'][] = $variant_schema;
}
// We don't want an array with keys, we just need the offers.
$data['hasVariant'] = array_values( $data['hasVariant'] );
return $data;
}
мой код:
protected function filter_variations( $data, $product ) {
if ( ! isset( $data['offers'] ) || $data['offers'] === [] ) {
return $data;
}
$data['@type'] = 'ProductGroup';
if ( isset( $data['sku'] ) ) {
$data['productGroupID'] = $data['sku'];
}
$data['hasVariant'] = [];
unset( $data['offers'] );
$product_variations = $product->get_available_variations();
foreach ( $product_variations as $key => $variation ) {
$variant_schema = $this->add_individual_product_variation( $product, $variation, $key );
if ( isset( $variant_schema['image'] ) ) {
// Изменение структуры для использования простого URL вместо объекта с '@id'
$this->variation_images[] = $variant_schema['image']; // Просто URL вместо массива
}
$data['hasVariant'][] = $variant_schema;
}
// We don't want an array with keys, we just need the offers.
$data['hasVariant'] = array_values( $data['hasVariant'] );
return $data;
}
Мне нужно, чтобы микроразметка с картинкой была вот такой:
"image": "
"это выглядит так:
"image":{"@id":"https://domain/#primaryimage"}
Подробнее здесь: https://stackoverflow.com/questions/791 ... t-on-image
Мобильная версия