Как изменить схему продукта на изображении?Php

Кемеровские программисты php общаются здесь
Anonymous
Как изменить схему продукта на изображении?

Сообщение Anonymous »

Я заметил, что во фрагменте Google не отображается фотография продукта. Я изменил код плагина, но тест не дал результатов.
Плагин 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

Вернуться в «Php»