Media: Add short-circuit filter to `attachment_url_to_postid()`.
Introduces the filter `pre_attachment_url_to_postid` to allow developers to short-circuit the function `attachment_url_to_postid()`. The return values are expected to be an attachment ID, zero (`0`) to indicate no attachment was found or `null` to indicate the function should proceed as usual. The function performs an expensive database query so developers making use of the function frequently may wish to use a custom table with appropriate indexes to reduce the load on their database server. Props antpb, apermo, audrasjb, joedolson. Fixes #61383. Built from https://develop.svn.wordpress.org/trunk@59118 git-svn-id: http://core.svn.wordpress.org/trunk@58514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
a03401429b
commit
b7d4ca5298
|
@ -5383,6 +5383,31 @@ function wp_maybe_generate_attachment_metadata( $attachment ) {
|
|||
function attachment_url_to_postid( $url ) {
|
||||
global $wpdb;
|
||||
|
||||
/**
|
||||
* Filters the attachment ID to allow short-circuit the function.
|
||||
*
|
||||
* Allows plugins to short-circuit attachment ID lookups. Plugins making
|
||||
* use of this function should return:
|
||||
*
|
||||
* - 0 (integer) to indicate the attachment is not found,
|
||||
* - attachment ID (integer) to indicate the attachment ID found,
|
||||
* - null to indicate WordPress should proceed with the lookup.
|
||||
*
|
||||
* Warning: The post ID may be null or zero, both of which cast to a
|
||||
* boolean false. For information about casting to booleans see the
|
||||
* {@link https://www.php.net/manual/en/language.types.boolean.php PHP documentation}.
|
||||
* Use the === operator for testing the post ID when developing filters using
|
||||
* this hook.
|
||||
*
|
||||
* @param int|null $post_id The result of the post ID lookup. Null to indicate
|
||||
* no lookup has been attempted. Default null.
|
||||
* @param string $url The URL being looked up.
|
||||
*/
|
||||
$post_id = apply_filters( 'pre_attachment_url_to_postid', null, $url );
|
||||
if ( null !== $post_id ) {
|
||||
return (int) $post_id;
|
||||
}
|
||||
|
||||
$dir = wp_get_upload_dir();
|
||||
$path = $url;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.7-alpha-59117';
|
||||
$wp_version = '6.7-alpha-59118';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue