我有一个问题,我的Post缩略图被裁剪为我在css文件或我主题的任何php文件中找不到的尺寸..
这是我的functions.php缩略图代码:
function novavideo_lite_get_post_no_thumbnail( $post ){
global $post;
// On récupère la liste des images attachées à l'article
$attachments = get_children( array(
'post_type' => 'attachment',
'posts_per_page' => 1,
'post_parent' => get_the_ID(),
'exclude' => get_post_thumbnail_id()
) );
// On teste si on a des images ou non
if ( $attachments ) {
$attachments_tmp = array_values($attachments);
$attachment = array_shift($attachments_tmp);
$extention = explode( '.', $attachment->guid );
$extention = end($extention);
$attachment_url = str_replace( '.' . $extention, '-164x150.' . $extention, $attachment->guid );
return '<img src="' . $attachment_url . '" alt="' . get_the_title() . '" />';
} else {
return false;
}
}
function novavideo_lite_theme_support() {
add_theme_support( 'post-thumbnails' );
add_image_size( 'thumb_site', '164', '150', false );
}
请注意,我已经在最后一行禁用了裁剪?
add_action( 'after_setup_theme', 'novavideo_lite_theme_support' );add_filter( 'intermediate_image_sizes', 'novavideo_lite_rcd_remove_stock_image_sizes' ); function novavideo_lite_rcd_remove_stock_image_sizes( $sizes ) {
return array( 'thumb_site' );}function novavideo_lite_delete_thumb_function( $post_ID ) {
$upload_dir = wp_upload_dir();
if ( 'post' == get_post_type() ):
global $_wp_additional_image_sizes;
$post = get_post( $post_ID );
// On récupère la liste des images attachées à la vidéo
$attachments = get_children( array(
'post_type' => 'attachment',
'posts_per_page' => -1,
'post_parent' => get_the_ID(),
) );
// On teste si on a des images ou non
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
//delete generated thumbs
wp_delete_attachment( $attachment->ID, true );
//delete original file
$file_URI = str_replace($upload_dir['baseurl'], $upload_dir['basedir'], $attachment->guid);
if( file_exists( $file_URI ) && !is_dir( $file_URI ) ){
unlink( $file_URI );
}
}
}
endif;}
我一直在使用此代码在发布后自动为帖子生成缩略图
add_filter('get_post_metadata', function($value, $object_id, $meta_key, $single) {
if ($meta_key !== '_thumbnail_id' || $value) {
return $value;
}
preg_match('~<img[^>]+wp-image-(\\d+)~', get_post_field('post_content', $object_id), $matches);
if ($matches) {
return $matches[1];
}
return $value;}, 10, 4);
现在,当我打开chrome中的Developers工具时,它给我的缩略图为164×111像素(自然:210×142像素) 显然拇指被裁剪为164×111然后拉伸为164×150 ..我发现img [属性风格]给予入场164×111我用代码禁用它
add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );function remove_width_attribute( $html ) { $html = preg_replace( '/(width|height)="\d*"\s/', "", $html ); return $html;
但仍然尺寸164×111像素(自然:210×142像素)仍然出现,我相信这是导致我这个问题的原因,但在我的主题文件中无法找到这些缩小
这是我的网站链接http://www.3dslab.com/
请帮助
答案 0 :(得分:0)
我认为使用缩略图大小
更容易设置缩略图尺寸/wp-admin -> Settings -> Media
然后取消选中&#34;裁剪缩略图到精确尺寸(通常缩略图是成比例的)&#34;缩略图大小下的复选框。
然后使用常规WP Post Thumbnail函数(例如get_the_post_thumbnail())在页面上放置缩略图。缩略图将是您正在显示的帖子的精选图像的缩略图。
记得包括
add_theme_support('post-thumbnails');
在您的functions.php文件中,因此您的帖子和页面上会激活特色图片。
但请注意,您的所有图片都应具有相同的宽高比,或者您在此处链接的页面看起来粗糙且不均匀。