The get_enclosed WordPress PHP filter allows you to modify the list of enclosures associated with a specific post.
Usage
add_filter('get_enclosed', 'your_custom_function', 10, 2);
function your_custom_function($pung, $post_id) {
// your custom code here
return $pung;
}
Parameters
- $pung (string[]): Array of enclosures for the given post.
- $post_id (int): Post ID.
More information
See WordPress Developer Resources: get_enclosed
Examples
Remove a specific enclosure from the list
add_filter('get_enclosed', 'remove_specific_enclosure', 10, 2);
function remove_specific_enclosure($pung, $post_id) {
$enclosure_to_remove = 'http://example.com/somefile.mp3';
if (($key = array_search($enclosure_to_remove, $pung)) !== false) {
unset($pung[$key]);
}
return $pung;
}
Add an enclosure to the list
add_filter('get_enclosed', 'add_new_enclosure', 10, 2);
function add_new_enclosure($pung, $post_id) {
$new_enclosure = 'http://example.com/newfile.mp4';
$pung[] = $new_enclosure;
return $pung;
}
Replace an existing enclosure with a new one
add_filter('get_enclosed', 'replace_enclosure', 10, 2);
function replace_enclosure($pung, $post_id) {
$old_enclosure = 'http://example.com/oldfile.mp3';
$new_enclosure = 'http://example.com/newfile.mp3';
if (($key = array_search($old_enclosure, $pung)) !== false) {
$pung[$key] = $new_enclosure;
}
return $pung;
}
Remove all enclosures for a specific post
add_filter('get_enclosed', 'remove_all_enclosures', 10, 2);
function remove_all_enclosures($pung, $post_id) {
if ($post_id == 123) {
$pung = [];
}
return $pung;
}
Remove enclosures with a specific file extension
add_filter('get_enclosed', 'remove_enclosures_by_extension', 10, 2);
function remove_enclosures_by_extension($pung, $post_id) {
$extension_to_remove = '.mp4';
$pung = array_filter($pung, function($enclosure) use ($extension_to_remove) {
return (substr($enclosure, -strlen($extension_to_remove)) !== $extension_to_remove);
});
return $pung;
}