WordPress.org

Make WordPress Core

Opened 2 years ago

Last modified 8 weeks ago

#23983 new enhancement

Add filter to get_post_thumbnail_id to override default thumbnail use

Reported by: Jesper800 Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: Media Keywords: needs-patch 2nd-opinion
Focuses: Cc:

Description

The current function for getting the post thumbnail ID, used in among others get_the_post_thumbnail, is as follows:

function get_post_thumbnail_id( $post_id = null ) {
	$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
	return get_post_meta( $post_id, '_thumbnail_id', true );
}

In my opinion, this needs a filter, so the user can override this by the attachment of his choosing, such as an Advanced Custom Fields image attached to the post.

Something like:

function get_post_thumbnail_id( $post_id = null ) {
	$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
	return apply_filters( 'post_thumbnail_id', get_post_meta( $post_id, '_thumbnail_id', true ), $post_id );
}

I know you can hook into the get_{$meta_type}_metadata filter, but getting the post thumbnail ID should still be possible by using get_post_meta, the other thumbnail should just be used for displaying.

Change History (3)

comment:1 @alexvorn22 years ago

this needs a filter, so the user can override this by the attachment of his choosing, such as an Advanced Custom Fields image attached to the post

This can confuse people. Someone then will don't get why the image, he or she is using as a featured image - will get replaced by another one.

Version 0, edited 2 years ago by alexvorn2 (next)

comment:2 @engelen11 months ago

  • Keywords has-patch added

(formerly Jesper800)

Why would this confuse people? Hooking directly into get_post_meta would confuse people, but allowing a function return value to be filterable shouldn't. We're requesting the featured image for a post, not a raw database value. Allowing get_the_title to be filterable doesn't confuse people either, does it?

In my opinion this should be filterable, as it provides flexibility in a currently quite rigid thumbnail system. For example, one might want to use the thumbnail of a parent post if the post itself doesn't have one. Adding a filter adds more flexibility, there are more than enough realistic use cases, and it doesn't add any confusion.

In dire need of a second opinion :-).

comment:3 @wonderboymusic8 weeks ago

  • Keywords needs-patch added; has-patch removed
Note: See TracTickets for help on using tickets.