image = $image;
$this->url = $url;
$this->twitter_image = $twitter_image;
}
/**
* Retrieves the images for an indexable.
*
* @param Meta_Tags_Context $context The context.
*
* @return array> The images.
*/
public function generate( Meta_Tags_Context $context ) {
$image_container = $this->get_image_container();
$this->add_from_indexable( $context->indexable, $image_container );
return $image_container->get_images();
}
/**
* Adds an image based on the given indexable.
*
* @param Indexable $indexable The indexable.
* @param Images $image_container The image container.
*
* @return void
*/
protected function add_from_indexable( Indexable $indexable, Images $image_container ) {
if ( $indexable->twitter_image_id ) {
$image_container->add_image_by_id( $indexable->twitter_image_id );
return;
}
if ( $indexable->twitter_image ) {
$image_container->add_image_by_url( $indexable->twitter_image );
}
}
/**
* Retrieves an instance of the image container.
*
* @codeCoverageIgnore
*
* @return Images The image container.
*/
protected function get_image_container() {
$image_container = new Images( $this->image, $this->url );
$image_container->image_size = $this->twitter_image->get_image_size();
$image_container->set_helpers( $this->twitter_image );
return $image_container;
}
}