我找到了一个解决方案,但似乎相当麻烦。我认为使用WP的原生缩略图功能可以得到更干净的解决方案,但我想不出来。
当我使用“tribe\\u event\\u featured\\u image”功能时,无论模板中加载了哪个功能,它都会很好地替换图像。然而,我也使用了Genesis框架及其响应滑块插件。使用tribe函数的解决方案没有使用特征图像填充滑块,因为“genesis\\u image”函数(使用并过滤WP的缩略图函数)调用了特征图像。
这就是为什么我认为处理本机功能的函数也会更好。但以下代码使我能够在没有设置特色图像的情况下,将组织者的特色图像显示为活动的特色图像。
/** Define a default post thumbnail Genesis */
function default_event_image_fallback($output, $args) {
global $post;
if( $output || $args[\'size\'] == \'full\' && get_post_type() == \'tribe-events\' )
return $output;
$post_id = tribe_get_organizer_id();
$image_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), $size );
$thumbnail = $image_src[0];
switch($args[\'format\']) {
case \'html\' :
return \'<img src="\'.$thumbnail.\'" class="attachment-\'. $args[\'size\'] .\'" alt="\'. get_the_title($post_id) .\'" />\';
break;
case \'url\' :
return $thumbnail;
break;
default :
return $output;
break;
}
}
add_filter(\'genesis_get_image\', \'default_event_image_fallback\', 10, 2);
/** Define a default post thumbnail Events Calendar */
function set_default_event_featured_img( $featured_image, $post_id, $size, $image_src ) {
if ( ! $featured_image ) {
$post_id = tribe_get_organizer_id();
$image_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post_id ), $size );
$featured_image = \'\';
//if link is not specifically excluded, then include <a>
if ( ! empty( $image_src ) && $link ) {
$featured_image .= \'<div class="tribe-events-event-image"><a href="\' . tribe_get_event_link() . \'" title="\' . get_the_title( $post_id ) . \'"><img src="\' . $image_src[0] . \'" title="\' . get_the_title( $post_id ) . \'" /></a></div>\';
} elseif ( ! empty( $image_src ) ) {
$featured_image .= \'<div class="tribe-events-event-image"><img src="\' . $image_src[0] . \'" title="\' . get_the_title( $post_id ) . \'" /></div>\';
}
return apply_filters( \'tribe_event_featured_image\', $featured_image, $post_id, $size, $image_src );
}
else {
return $featured_image;
}
}
add_filter( \'tribe_event_featured_image\', \'set_default_event_featured_img\', 10, 4 );