You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
985 B
PHTML
50 lines
985 B
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* The Primary Image Class.
|
||
|
*
|
||
|
* @since 1.0.43
|
||
|
* @package RankMath
|
||
|
* @subpackage RankMath\Schema
|
||
|
* @author Rank Math <support@rankmath.com>
|
||
|
*/
|
||
|
|
||
|
namespace RankMath\Schema;
|
||
|
|
||
|
use RankMath\Helper;
|
||
|
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
/**
|
||
|
* PrimaryImage class.
|
||
|
*/
|
||
|
class PrimaryImage implements Snippet {
|
||
|
|
||
|
/**
|
||
|
* Add primaryImage entity in JSON-LD data.
|
||
|
*
|
||
|
* @param array $data Array of JSON-LD data.
|
||
|
* @param JsonLD $jsonld JsonLD Instance.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function process( $data, $jsonld ) {
|
||
|
$image = Helper::get_thumbnail_with_fallback( get_the_ID(), 'full' );
|
||
|
if ( empty( $image ) ) {
|
||
|
return $data;
|
||
|
}
|
||
|
|
||
|
$data['primaryImage'] = [
|
||
|
'@type' => 'ImageObject',
|
||
|
'@id' => $image[0],
|
||
|
'url' => $image[0],
|
||
|
'width' => $image[1],
|
||
|
'height' => $image[2],
|
||
|
'caption' => isset( $image['caption'] ) ? $image['caption'] : '',
|
||
|
];
|
||
|
|
||
|
$jsonld->add_prop( 'language', $data['primaryImage'] );
|
||
|
|
||
|
return $data;
|
||
|
}
|
||
|
}
|