wordpress多个帖子缩略图隐藏类属性

时间:2016-03-13 04:12:55

标签: php wordpress

我正在使用Wordpress的多个帖子缩略图插件,并且很难找到一种方法来删除wordpress似乎生成的默认html属性?当您查看html源时,它会出现;

<img width="600" height="450" src="http://localhost/news/../media/news-specials/hotplate2thumb.jpg" class="attachment-post-thumbnail size-post-thumbnail" alt="hotplate2thumb" />

我想删除宽度和高度,因为这是无效的代码。我也希望删除这个类,以使网站看起来不那么单词。

理想情况下,它应该生成:

<img src="http://localhost/news/../media/news-specials/hotplate2thumb.jpg" alt="hotplate2thumb" />

我已经在functions.php

中得到了这个
//remove class from the_post_thumbnail
function the_post_thumbnail_remove_class($output) {
        $output = preg_replace('/class=".*?"/', '', $output);
        return $output;
}
add_filter('post_thumbnail_html', 'the_post_thumbnail_remove_class');

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;
}

但这只适用于wordpress'defult post缩略图,而不适用于多重/次要缩略图。

我也尝试在模板上实现代码:

<?php 
if (class_exists('MultiPostThumbnails')): 
echo "<img src=\"".MultiPostThumbnails::get_post_thumbnail_url(get_post_type(), 'secondary-image') . "\" alt=\"\" />"; 

endif; ?>

但即使我没有一套,仍然会为所有帖子呈现第二张图像,因此我会在主题中出现破碎的图像。并非我的所有帖子都使用第二张图片,只有少数。

由于

1 个答案:

答案 0 :(得分:0)

好的,我通过添加

解决了这个问题
add_filter('post_secondary-image_thumbnail_html', 'the_post_thumbnail_remove_class');
add_filter( 'post_secondary-image_thumbnail_html', 'remove_width_attribute', 10 );

到这个功能

//remove class from the_post_thumbnail
function the_post_thumbnail_remove_class($output) {
        $output = preg_replace('/class=".*?"/', '', $output);
        return $output;
}
add_filter('post_thumbnail_html', 'the_post_thumbnail_remove_class');
add_filter('post_secondary-image_thumbnail_html', 'the_post_thumbnail_remove_class');
add_filter( 'post_secondary-image_thumbnail_html', 'remove_width_attribute', 10 );
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;
}