WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 8 days 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 has-patch
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 (2)

23983.patch (548 bytes) - added by gilbitron 2 years ago.
23983.2.patch (814 bytes) - added by sebastian.pisula 8 days ago.

Download all attachments as: .zip

Change History (8)

#1 @alexvorn2
4 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 4 years ago by alexvorn2 (previous) (diff)

#2 @engelen
3 years 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 :-).

#3 @wonderboymusic
2 years ago

  • Keywords needs-patch added; has-patch removed

@gilbitron
2 years ago

#4 @gilbitron
2 years ago

  • Keywords needs-testing added; needs-patch removed

#5 @sebastian.pisula
8 days ago

Second example: Via filter we can set the default thumbnail if post not set featured image

#6 @sebastian.pisula
8 days ago

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