相关代码位于wp-includes/post-thumbnail-template.php. 缩略图ID作为\\u缩略图\\u ID存储在post元数据中。
你可以
将默认图像上载到WordPress,并将其ID设置为任何没有缩略图的帖子的默认缩略图ID:
function default_post_metadata__thumbnail_id( $value, $object_id, $meta_key,
$single, $meta_type )
{
if ( \'_thumbnail_id\' == $meta_key )
{
$value = 123; // the ID for the default image
}
return $value;
}
add_filter( \'default_post_metadata\', \'default_post_metadata__thumbnail_id\', 10, 5 );
这意味着
has_post_thumbnail()
和
get_the_post_thumbnail()
现在,即使未配置缩略图,也会为帖子找到缩略图,并且只会在给定ID下正常工作,即找到正确的图像大小并为您生成图像标签等。
然而,我猜在您编辑帖子时,该ID可能会被保存到帖子中,因此您可能只想在以下情况下注册过滤器if (! is_admin() ) {
, i、 e.仅在前端站点上。这确实意味着您需要将图像添加到媒体库中,尽管也可能通过使用ID-123和挂钩来伪造图像image_downsize_default_thumbnail
返回-123的图像。
覆盖has_post_thumbnail
筛选以始终返回true,并重写post_thumbnail_html
如果返回空字符串,则使用筛选器填充缺少的HTML。
function default_post_thumbnail_html( $html ) {
if ( $html == \'\' ) {
return sprintf("<img src=\\"%s\\" alt=\\"%s\\" />",
esc_url( bloginfo(\'template_directory\') . \'/images/default-image.jpg\' ),
esc_url( get_the_title() ) );
}
return $html;
}
add_filter( \'post_thumbnail_html\', \'default_post_thumbnail_html\', 10, 1 );
add_filter( \'has_post_thumbnail\', \'__return_true\' );
这样,您必须生成
<img>
完全是你自己,但这会让你使用一个没有ID的图像。