Y-a--s--e-R

سایزهای مختلف تصویر شاخص و تصاویر متن

6 پست در این موضوع قرار دارد

سلام به همه ، امیدوارم که حالتون خوب باشه

همونطور که میدونید در حالت عادی ، هر تصویری که در رسانه آپلود شه ، چند سایز ازش ساخته میشه که تعداد ایجاد این سایزها ، واسه هر قالب فرق می کنه .

این حالت ، واسه تصاویر شاخص خوبه و باعث میشه که در قسمتهای مختلف قالب ، عکس متناسب با اون قسمت ایجاد و به نمایش دربیاد ، ولی واسه عکس های داخل متن خوب نیست .

یعنی به فرض ، میخوایم یه پست با عنوان “عکس های جدید از هنرمندان ایرانی” منتشر می کنیم که طبیعتا باید چندین عکس رو علاوه بر تصویر شاخص ، در خود متن قرار بدیم که نیازی به تولید چند عکس با سایز مختلف نیست و همون عکس اصلی کفایت میکنه ، ولی در حالت پیش فرض از همین عکس ها هم چندین سایز تولید میشه که اصلا بهشون نیازی نیست .
 

سئوال من اینه که چیکار کنیم که فقط این چند سایز اضافی ، برای تصاویر شاخص ایجاد بشه و تصاویری که در متن استفاده میشه و شاخص نیست ، فقط همون سایز اصلیش آپلود شه و سایز دیگه ای ازش ساخته نشه ؟

راهی وجود داره ؟

به اشتراک گذاری این پست


لینک به پست

سلام. میتونید این لینک رو دنبال کنید:

http://wordpress.stackexchange.com/questions/181877/generate-thumbnails-only-for-featured-images

 

به اشتراک گذاری این پست


لینک به پست
در 2 ساعت قبل، فرحان گفته است :

سلام. میتونید این لینک رو دنبال کنید:

http://wordpress.stackexchange.com/questions/181877/generate-thumbnails-only-for-featured-images

 

مرسی آقای فرحان ، فقط ببخشید ، چون من زبانم زیاد خوب نیست ، از لینک متوجه نشدم که دقیقا باید واسه حل مشکل ، چیکار کنم ؟

کد زیر رو باید در فانکشن بزارم ؟

// Enable support for Post Thumbnails, and declare sizes.
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 400, 400, array("center","center") );
function fw_add_image_insert_override($sizes){
    // unset( $sizes['thumbnail']);
    unset( $sizes['small']);
    unset( $sizes['medium']);
    unset( $sizes['large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'fw_add_image_insert_override' );

 

به اشتراک گذاری این پست


لینک به پست

به نظرم راه حل اولی که داده بودن که یک تابع بود بهتره.

اون تابع به این صورته که هر سایز تصویری رو زمانی که فراخوانی میشه برش میزنه. در نتیجه توی مطلب که تصویر بدون سایز فراخوانی میشه دیگه تصاویر کات نمیشن.

ولی باید بلد باشید پوسته رو ویرایش کنید.

به اشتراک گذاری این پست


لینک به پست
در 4 ساعت قبل، فرحان گفته است :

به نظرم راه حل اولی که داده بودن که یک تابع بود بهتره.

اون تابع به این صورته که هر سایز تصویری رو زمانی که فراخوانی میشه برش میزنه. در نتیجه توی مطلب که تصویر بدون سایز فراخوانی میشه دیگه تصاویر کات نمیشن.

ولی باید بلد باشید پوسته رو ویرایش کنید.

منظورتون اینه ؟

function lazy_image_size($image_id, $width, $height, $crop) {
    // Temporarily create an image size
    $size_id = 'lazy_' . $width . 'x' .$height . '_' . ((string) $crop);
    add_image_size($size_id, $width, $height, $crop);

    // Get the attachment data
    $meta = wp_get_attachment_metadata($image_id);

    // If the size does not exist
    if(!isset($meta['sizes'][$size_id])) {
        require_once(ABSPATH . 'wp-admin/includes/image.php');

        $file = get_attached_file($image_id);
        $new_meta = wp_generate_attachment_metadata($image_id, $file);

        // Merge the sizes so we don't lose already generated sizes
        $new_meta['sizes'] = array_merge($meta['sizes'], $new_meta['sizes']);

        // Update the meta data
        wp_update_attachment_metadata($image_id, $new_meta);
    }

    // Fetch the sized image
    $sized = wp_get_attachment_image_src($image_id, $size_id);

    // Remove the image size so new images won't be created in this size automatically
    remove_image_size($size_id);
    return $sized;
}


آخه من هر چی کد ، داخل لینک مذکور دیدم مربوط به فانکشن بود .

کد بالا رو تو فانکشن بزارم ، مشکل حل میشه ؟

ممنون میشم اگه کامل راهنمایی کنید . اگه بگید که چه کدی رو کجای قالب بزارم خیلی خوب میشه ، آخه همونطور که گفتم چون زبان سایتش انگلیسی بود خیلی دست و پا شکسته متوجه شدم !

به اشتراک گذاری این پست


لینک به پست
در 17 ساعت قبل، Y-a--s--e-R گفته است :

منظورتون اینه ؟


function lazy_image_size($image_id, $width, $height, $crop) {
    // Temporarily create an image size
    $size_id = 'lazy_' . $width . 'x' .$height . '_' . ((string) $crop);
    add_image_size($size_id, $width, $height, $crop);

    // Get the attachment data
    $meta = wp_get_attachment_metadata($image_id);

    // If the size does not exist
    if(!isset($meta['sizes'][$size_id])) {
        require_once(ABSPATH . 'wp-admin/includes/image.php');

        $file = get_attached_file($image_id);
        $new_meta = wp_generate_attachment_metadata($image_id, $file);

        // Merge the sizes so we don't lose already generated sizes
        $new_meta['sizes'] = array_merge($meta['sizes'], $new_meta['sizes']);

        // Update the meta data
        wp_update_attachment_metadata($image_id, $new_meta);
    }

    // Fetch the sized image
    $sized = wp_get_attachment_image_src($image_id, $size_id);

    // Remove the image size so new images won't be created in this size automatically
    remove_image_size($size_id);
    return $sized;
}


آخه من هر چی کد ، داخل لینک مذکور دیدم مربوط به فانکشن بود .

کد بالا رو تو فانکشن بزارم ، مشکل حل میشه ؟

ممنون میشم اگه کامل راهنمایی کنید . اگه بگید که چه کدی رو کجای قالب بزارم خیلی خوب میشه ، آخه همونطور که گفتم چون زبان سایتش انگلیسی بود خیلی دست و پا شکسته متوجه شدم !

 

ببینید میشه به این صورت عمل کنید اول هر دو تا کد رو بزارید توی فایل فانکشن، هم این تابع رو و هم اون کدی که خودتون اول انتخاب کردید.( اون قسمتی از کد اولی که میاد همه ی سایزهای برش رو حذف میکنه). بعد از اون بیاید توی فانکشن بگردید هر جایی که add_image_size بود رو کامنت کنید تا قالب هم سایزی رو به وردپرس برای برش زدن اضافه نکنه. مرحله بعدی اینه که بیاید توی قالبتون، توی فایل هایی که لوپ قرار داره دنبال the_thumbnail بگردید و ب جای اون از تابع lazy_image_size استفاده کنید.

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری