mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-01-30 13:37:33 +00:00
Media: Introduce wp_content_img_tag filter.
This filter allows modifying individual `img` tags within a blob of content that are by default processed by the `wp_filter_content_tags()` function. The addition of this filter facilitates plugins that tweak images to accomplish this goal without re-implementing duplicate content image parser logic, which furthermore can have a negative performance impact due to additional regular expressions. In addition to the filterable `img` tag, the filter receives the context (typically the function or filter in which the content is parsed) and the attachment ID. The latter may be 0, in case the image is not an attachment (for example when it is an external image URL). Props adamsilverstein, flixos90, pbearne, peterwilsoncc. Fixes #55347. git-svn-id: https://develop.svn.wordpress.org/trunk@53028 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
86ed0d2e57
commit
0514150026
@ -1843,6 +1843,17 @@ function wp_filter_content_tags( $content, $context = null ) {
|
||||
$filtered_image = wp_img_tag_add_loading_attr( $filtered_image, $context );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters an img tag within the content for a given context.
|
||||
*
|
||||
* @since 6.0.0
|
||||
*
|
||||
* @param string $filtered_image Full img tag with attributes that will replace the source img tag.
|
||||
* @param string $context Additional context, like the current filter name or the function name from where this was called.
|
||||
* @param int $attachment_id The image attachment ID. May be 0 in case the image is not an attachment.
|
||||
*/
|
||||
$filtered_image = apply_filters( 'wp_content_img_tag', $filtered_image, $context, $attachment_id );
|
||||
|
||||
if ( $filtered_image !== $match[0] ) {
|
||||
$content = str_replace( $match[0], $filtered_image, $content );
|
||||
}
|
||||
|
||||
@ -2293,6 +2293,17 @@ EOF;
|
||||
$this->assertSame( $img, wp_filter_content_tags( $img ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 55347
|
||||
*/
|
||||
public function test_wp_filter_content_tags_has_filter() {
|
||||
$filter = new MockAction();
|
||||
add_filter( 'wp_content_img_tag', array( &$filter, 'filter' ) );
|
||||
$img_tag_1 = get_image_tag( self::$large_id, '', '', '', 'medium' );
|
||||
|
||||
wp_filter_content_tags( $img_tag_1 );
|
||||
$this->assertSame( 1, $filter->get_call_count() );
|
||||
}
|
||||
/**
|
||||
* @ticket 33641
|
||||
* @ticket 34528
|
||||
|
||||
Loading…
Reference in New Issue
Block a user