66 lines
1.7 KiB
PHP
66 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* ET_Builder_Module_Helper_Media class file.
|
|
*
|
|
* @class ET_Builder_Module_Helper_Media
|
|
* @package Divi\Builder
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
die( 'Direct access forbidden.' );
|
|
}
|
|
|
|
/**
|
|
* Class ET_Builder_Module_Helper_Media.
|
|
*
|
|
* Module helpers for media (image).
|
|
*
|
|
* @since 4.6.4
|
|
*/
|
|
class ET_Builder_Module_Helper_Media {
|
|
/**
|
|
* Return instance of current class.
|
|
*
|
|
* @return ET_Builder_Module_Helper_Media
|
|
*/
|
|
public static function instance() {
|
|
static $instance;
|
|
|
|
return $instance ? $instance : $instance = new self();
|
|
}
|
|
|
|
/**
|
|
* Get image attachment class.
|
|
*
|
|
* - wp-image-{$id}
|
|
* Add `wp-image-{$id}` class to let `wp_filter_content_tags()` fill in missing
|
|
* height and width attributes on the image. Those attributes are required to add
|
|
* loading "lazy" attribute on the image. WP doesn't have specific method to only
|
|
* generate this class. It's included in get_image_tag() to generate image tags.
|
|
*
|
|
* @since 4.6.4
|
|
*
|
|
* @param array $attrs All module attributes.
|
|
* @param string $source_key Key of image source.
|
|
* @param integer $attachment_id Attachment ID. Optional.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get_image_attachment_class( $attrs, $source_key, $attachment_id = 0 ) {
|
|
$attachment_class = '';
|
|
|
|
// 1.a. Find attachment ID by URL. Skip if the source key is empty.
|
|
if ( ! empty( $source_key ) ) {
|
|
$attachment_src = et_()->array_get( $attrs, $source_key, '' );
|
|
$attachment_id = et_get_attachment_id_by_url( $attachment_src );
|
|
}
|
|
|
|
// 1.b. Generate attachment ID class.
|
|
if ( $attachment_id > 0 ) {
|
|
$attachment_class = "wp-image-{$attachment_id}";
|
|
}
|
|
|
|
return $attachment_class;
|
|
}
|
|
}
|