رفتن به مطلب

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


پست های پیشنهاد شده

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

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

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

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

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

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

لینک به ارسال
در 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 استفاده کنید.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...