Here is the specification for the filter for the wp_get_attachment_url
filter:
/**
* Filter the attachment URL.
*
* @since 2.1.0
*
* @param string $url URL for the given attachment.
* @param int $post_id Attachment ID.
*/
And this is my attempted filter:
function mfeu_filter_attachment_url( $url, $post_id ) {
return (get_post_meta($post_id,'_mfeu_external_url',true) != '') ? get_post_meta($post_id,'_wp_attached_file',true) : $url;
}
add_filter('wp_get_attachment_url','mfeu_filter_attachment_url');
I am consistently getting the following errors:
[24-Feb-2016 21:15:55 UTC] PHP Warning: Missing argument 2 for mfeu_filter_attachment_url() in .../wp-content/plugins/media-external-url/media-external-url.php on line 20
[24-Feb-2016 21:15:55 UTC] PHP Notice: Undefined variable: post_id in .../wp-content/plugins/media-external-url/media-external-url.php on line 21
It seems as though the filter isn't meant to accept two arguments, even though the description in the core WordPress file post.php
makes it seem so! My filter needs to be able to know which attachment it's dealing with in order to get the attachment's meta and use that to make a decision on how to return the url. Can anybody see what's wrong?