: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
* Class for converting media attribute from Twitter API v1.1 to v2.
* @package twitter-api-v2
namespace TwitterFeed\V2;
if (! defined('ABSPATH')) {
protected $included_media;
* @param array $tweet Tweet data.
* @param array $included_media Included media data.
public function __construct($tweet, $included_media)
$this->included_media = $included_media;
public function get_media_keys()
return ! empty($this->tweet['attachments']['media_keys']) ? $this->tweet['attachments']['media_keys'] : [];
public function convert()
foreach ($this->get_media_keys() as $media_key_index => $media_key_value) {
$media_index = array_search(
$this->tweet['attachments']['media_keys'][ $media_key_index ],
array_column($this->included_media, 'media_key')
if ($media_index !== false) {
'media_url_https' => $this->included_media[ $media_index ]['url'] ?? $this->included_media[ $media_index ]['preview_image_url'],
'type' => $this->included_media[ $media_index ]['type'],
if (isset($new_media['type']) && $new_media['type'] === 'video') {
'variants' => $this->included_media[ $media_index ]['variants'],