WordPress.org

Make WordPress Core

Opened 2 years ago

Last modified 4 months 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: 2nd-opinion needs-testing
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.

Attachments (1)

23983.patch (548 bytes) - added by gilbitron 4 months ago.

Download all attachments as: .zip

Change History (5)

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.

Last edited 2 years ago by alexvorn2 (previous) (diff)

comment:2 @engelen15 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 @wonderboymusic6 months ago

  • Keywords needs-patch added; has-patch removed

@gilbitron4 months ago

comment:4 @gilbitron4 months ago

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