使用Catch_the_Image获取缩略图大小

时间:2012-03-05 作者:Pollux Khafra

我在我的网站上使用前端帖子,所以我没有机会为我的很多帖子设置特色图片。因此,我使用catch\\u the\\u图像获取拇指,但它获取原始大小,然后缩放,这会影响页面速度。基本上,我想做的是将“-150x150”添加到函数中的字符串中,以便它提取它存储在uploads文件夹中的3个最小大小。所以,不要用图片。png返回图片150x150。png。知道如何将其添加到此函数中吗?

function catch_that_image() {
 global $post, $posts;
 $first_img = \'\';
 ob_start();
 ob_end_clean();
 $output = preg_match_all(\'/<img.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches);
 $first_img = $matches [1] [0];

 return $first_img;
}

2 个回复
最合适的回答,由SO网友:alex 整理而成

您可以通过向函数中添加代码来添加自己的命名图像大小。php。

add\\u theme\\u support(“post-缩略图”)中的内容//可能不需要添加\\u image\\u大小(\'前端-150\',300,300);

现在,您应该能够在catch\\u中使用that\\u image()

wp_get_attachment_image($post->ID, \'front-end-150\')
对于所有新上载的图像。

您过去的图像没有前端150,因此您可能需要使用“重新生成缩略图”插件(http://wordpress.org/extend/plugins/regenerate-thumbnails/)

祝你好运

SO网友:ifdion

另一种方法是将上传表单<input type="file"> 在前端过帐表单中;在函数的其余部分中/之后处理它。

以下是文件输入:

<input type="file" id="profile-picture" name="profile-picture[]" size="40" multiple />
只需相应地更改name属性。这个[] 关于属性值(&A);这个multiple 用于多文件上载。

附加功能:

function attach_uploads($uploads,$post_id = 0){
$files = rearrange($uploads);
if($files[0][\'name\']==\'\'){
    return false;   
}
foreach($files as $file){
    $upload_file = wp_handle_upload( $file, array(\'test_form\' => false) );
    $attachment = array(
    \'post_mime_type\' => $upload_file[\'type\'],
    \'post_title\' => preg_replace(\'/\\.[^.]+$/\', \'\', basename($upload_file[\'file\'])),
    \'post_content\' => \'\',
    \'post_status\' => \'inherit\'
);
    $attach_id = wp_insert_attachment( $attachment, $upload_file[\'file\'], $post_id );
    $attach_array[] = $attach_id;
    require_once(ABSPATH . \'wp-admin/includes/image.php\');
    $attach_data = wp_generate_attachment_metadata( $attach_id, $upload_file[\'file\'] );
    wp_update_attachment_metadata( $attach_id, $attach_data );
}
return $attach_array;
}
您可以找到有关重排功能的更多信息here.

以及附加功能,以附加为post\\u缩略图

// put this along the other $_POST
$files = $_FILES[\'profile-picture\'];

// insert attachment, after you have created the new post id → $post_id
$attached_files = attach_uploads($files,$post_id);

// set the first file as post thumbnail
if($attached_files){
    set_post_thumbnail( $post_id, $attached_files[0] ); 
}
希望这有帮助

结束

相关推荐