কেবলমাত্র বৈশিষ্ট্যযুক্ত চিত্রগুলির জন্য থাম্বনেইলগুলি তৈরি করুন


10

আমি জানতে চাই যে কেবলমাত্র এমন চিত্রগুলির জন্য থাম্বনেইল আকার তৈরি করার কোনও সহজ উপায় (কাস্টম কোড বা প্লাগইন) আছে যা আমি বৈশিষ্ট্যযুক্ত চিত্র হিসাবে ব্যবহার করতে চাইছি (সূচি.পিএফ, সংরক্ষণাগার। পিএফপি, ইত্যাদি), তবে চিত্রগুলির জন্য নয় পোস্টগুলিতে ব্যবহৃত (একক.এফপি)। আমার মূল লক্ষ্যটি আমার থিমটি কখনও ব্যবহার করবে না এমন থাম্বনেইল তৈরি না করে সার্ভার স্পেসের ব্যবহার হ্রাস করা।

আমার থাম্বনেইলগুলিতে কেবলমাত্র দুটি আকারের, 720px প্রশস্ত এবং 328px প্রশস্ত থাকবে এবং 720px প্রশস্ত বৈশিষ্ট্যযুক্ত চিত্রগুলি (কেবল হোমপেজ) এছাড়াও একটি 328px প্রশস্ত এক (আর্কাইভ.পিপি এবং সাইডবার.পিপি জন্য) থাকতে পারে

বর্তমানে, আমি জানি একমাত্র প্রোগ্রামিক উপায় হ'ল প্রতিটি চিত্র আপলোডের জন্য থাম্বনেইল তৈরি করা , যা অনাকাঙ্ক্ষিত, কারণ আমার বেশিরভাগ আপলোডগুলি পোস্ট ইমেজ হবে এবং আমাকে নিজে থেকেই সার্ভার থেকে প্রচুর চিত্র মুছে ফেলতে হবে।

আমি প্লাগইনগুলির তুলনায় কাস্টম কোডটি পছন্দ করব তবে একটি প্লাগইন গ্রহণযোগ্য হবে। আমি জানি যে এখানে কিছু চিত্রের আকার পরিবর্তনকারী প্লাগইন রয়েছে, তবে তারা দীর্ঘদিন ধরে আপডেট হয়নি (টিমথম্ব, ডায়নামিক চিত্র প্রতিরোধক ) izer

আমি এখানে ওয়ার্ডপ্রেস এসই তে একটি অনুরূপ প্রশ্নও পেয়েছি , তবে স্বীকৃত উত্তরটি আমার সমস্যাটি সত্যিই সমাধান করে না।


সম্পাদনা: পোস্টের ভিতরে থাকা চিত্রগুলির জন্য আমার থাম্বনেইলগুলি মুছতে বা প্রতিরোধ করতে হবে, বৈশিষ্ট্যযুক্ত চিত্রগুলির জন্য নয়, অর্থাত:

(1) বৈশিষ্ট্যযুক্ত চিত্র : ডাব্লুপি দ্বারা স্বতঃ উত্পাদিত অতিরিক্ত থাম্বনেইস ঠিক আছে।

(২) পোস্টগুলির অভ্যন্তরে ব্যবহৃত চিত্রগুলি : আসল চিত্র আপলোড করুন এবং কোনও অতিরিক্ত মাপ তৈরি করবেন না। আমি ছবিটি আপলোড করার আগে ক্রপ করব, আকার পরিবর্তন করব এবং অনুকূলিত করব এবং একটি আকার আমার প্রয়োজনের সাথে খাপ খায়।



1
প্রথমত, এটি সম্ভাব্য সদৃশ বলে ; দ্বিতীয়ত, এটি আপনার সমস্যা সমাধানে আপনাকে সহায়তা করতে পারে, কারণ আপনি সম্ভবত এটি আপনার প্রয়োজনের সাথে মানিয়ে নিতে পারেন; সর্বশেষে তবে সর্বনিম্ন নয়, »গতিশীল চিত্র প্রতিরোধক« প্লাগ-ইনটির একটি উত্তর রয়েছে, যদিও এটি ভিন্ন different
নিকোলাই

2
এটিতে ডুব দেওয়ার কোনও সময় নেই, তবে আপনি যা জানেন তা থাম্বনেল আইডি - মেটা কী: _thumbnail_id-, যা আসলে যথেষ্ট হওয়া উচিত save_postএবং অনুরূপ হুকগুলি যাওয়ার উপায় হতে পারে। তবে ভুলে যাবেন না যে আপনার পোস্টে থাকা এই চিত্রগুলি অন্য পোস্টগুলিতে থাম্বনেইল হিসাবে ব্যবহৃত হতে পারে, আপনার এটির জন্য অ্যাকাউন্ট করার কোনও ব্যবস্থা থাকতে পারে।
নিকোলাই

1
আপনি যা লিখেছেন তা বিবেচনা করে, আপনি বৈশিষ্ট্যযুক্ত চিত্রটির জন্য অতিরিক্ত আকারগুলিতে কিছু মনে করবেন না, আমি আরও ভাবছিলাম: যদি আপনি যদি জানেন যে পোস্টের থাম্বনেইল / বৈশিষ্ট্যযুক্ত চিত্রটি কোনটি সংযুক্ত চিত্রের হয় তবে আপনি অন্যগুলির জন্য অতিরিক্ত চিত্রের আকার মুছতে পারেন , সেই প্রক্রিয়া থেকে বৈশিষ্ট্যযুক্ত চিত্র বাদ দিয়ে। আমি এর আগে একটি সম্ভাব্য সীমাবদ্ধতা / অপূর্ণতা উল্লেখ করেছি।
নিকোলাই

1
পরামর্শ: গ্লাইডেরadd_filter('intermediate_image_sizes_advanced', '__return_false') সাহায্যে ফ্লাইটের মাধ্যমে থাম্বনেইলকে পুনরায় আকার দিন এবং তারপরে গ্লাইড
গাজাজাজাপ

উত্তর:


2

এই ফাংশনটি অস্থায়ীভাবে একটি চিত্রের আকার নিবন্ধন করে, চিত্রটি তৈরি করে (প্রয়োজনীয় হলে) তৈরি করে এবং সেই আকারটি সরিয়ে দেয় যাতে নতুন চিত্রগুলি সেই আকারে তৈরি হবে না।

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

এটি "অলস" কারণ চিত্রগুলি প্রয়োজন না হওয়া পর্যন্ত তৈরি করা হয় না।

আপনার ব্যবহারের ক্ষেত্রে, আপনি lazy_image_sizeপছন্দসই আকারের একটি চিত্র পেতে পোস্ট থাম্বনেল আইডি দিয়ে কল করবেন । প্রথম কলটিতে একটি চিত্র উত্পন্ন হবে। পরবর্তী কলগুলি বিদ্যমান চিত্রটি আনবে।

সংক্ষেপ: https://gist.github.com/mtinsley/be503d90724be73cdda4


0

আপনি এই লিঙ্কটি দেখতে পারেন । এর মতো কিছু উদাহরণ রয়েছে

add_action( 'after_setup_theme', 'baw_theme_setup' );
function baw_theme_setup() {
  add_image_size( 'category-thumb', 300 ); // 300 pixels wide (and unlimited height)
  add_image_size( 'homepage-thumb', 220, 180, true ); // (cropped)
}

2
আমার কেবলমাত্র কিছু চিত্রের জন্য থাম্বনেইল প্রয়োজন, আমি আপলোড করি এমন সমস্ত কিছুর জন্য নয়। মূলত, আমি যখন কোনও চিত্র আপলোড করি তখন থাম্বনেলগুলি তৈরি করা হয় বা না হয় আমি তা নিয়ন্ত্রণ করতে চাই।
ইমরেক

কিন্তু কেন? স্টোরেজ স্পেস একটি সমস্যা? সত্যিই ধারণা করা শক্ত যে যখন সেখানে প্রচুর পরিমাণে সঞ্চয় স্থান পাওয়া যায়।
aequalsb

0


1. ড্যাশবোর্ডে যান> সেটিংস> মিডিয়া ২.চিকিত্সার ক্রপ থাম্বনেইলকে সঠিক মাত্রাগুলিতে (সাধারণত থাম্বনেইলগুলি আনুপাতিক হয়
)
৩. সমস্ত ইনপুট (0 সকল আকারের) জন্য 0 প্রবেশ করুন 4. এগুলি আপনার ফাংশনগুলিতে যুক্ত করুন .এইচপিপি

// 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' );

৫. নিশ্চিত করুন যে আপনার ফাংশনগুলিতে কোনও কোড লাইন নেই ph পিএফপি add_imge_size নোট দিয়ে শুরু করুন:: আমি মনে করি আপনি আপনার থাম্বনেলটির জন্য 400x400 আকার ব্যবহার করেছেন এখন আপনি যখন কোনও ছবি আপলোড করবেন, এটি কমপক্ষে 4 সংস্করণ ছবির পরিবর্তে কেবল 2 সংস্করণ তৈরি করবে আগের মত


0

ওয়ার্ডপ্রেসকে কেবলমাত্র কিছু নির্দিষ্ট চিত্রের জন্য অতিরিক্ত আকার তৈরি থেকে বিরত রাখতে আপনার কাছে এমন একটি উপায় থাকতে হবে যে আপনি আপলোড করার বিষয়ে যে চিত্রটি কেবল একটি বিশেষ উদ্দেশ্যে ব্যবহার করা হবে। এটি আপলোড করার আগে অবশ্যই এটি ঘটবে।

যেহেতু কোনও আপলোড ক্রিয়াকলাপের সময় এই ধরণের বিকল্পগুলি নির্দেশ করার জন্য এই জাতীয় কোনও ইন্টারফেস নেই (বাক্স-অফ-বক্স) রয়েছে, তাই আপনি অতিরিক্ত চিত্র উত্পন্ন করতে বাধা দিতে পারবেন না - যদি না এই বৈশিষ্ট্যটি যুক্ত করা প্লাগইন না থাকে।

তবে বিশ্বে আপনি অতিরিক্ত চিত্রের আকারগুলি কেন চান না? আপনি কখনই বুঝতে পারবেন না যে আপনি যখন কোনও চিত্রের বিভিন্ন আকার ব্যবহার করতে চান তখন কোনও পরিস্থিতির মুখোমুখি হতে পারেন। আপনি স্টোরেজ স্পেস সম্পর্কে উদ্বিগ্ন?

আপনি কি নিজের নির্দিষ্ট আকারের চশমা ব্যবহার করতে পারবেন না? the_post_thumbnail( array(100, 100) );

আমি এখানে যে উত্তর এবং মন্তব্যগুলি পড়েছি সেগুলির বেশিরভাগই চিত্রের আকারগুলির জন্য কীভাবে ওয়ার্ডপ্রেস পরিবেশকে অনুকূলিতকরণ করতে হয় তা ব্যাখ্যা করে তবে শর্তাধীন এটির কোনওটিই উল্লেখ করে না। তদুপরি, এগুলির মধ্যে কেউই এই চিত্রটির আপলোড করার আগে আপনাকে অবশ্যই চিত্রের ব্যবহার নির্দেশ করতে সক্ষম হতে পারে না address

আপনি যদি কোনও পোস্টে খুব ছোট চিত্র বা খুব বড় ছবিটির জন্য ক্ষতিপূরণ দেওয়ার চেষ্টা করছেন তবে আপনি কয়েকটি জিনিস ব্যবহার করতে পারেন।

  1. সিএসএস: আপনি নিজের স্টাইলশিটে এন্ট্রি যুক্ত করতে পারেন যেমন .post-entry img { max-width:200px; max-height:300px; }ইমেজের আকারের উপর নির্ভর করার চেয়ে এটি আরও সর্বজনীন এবং কার্যকর - এটি ফটোশপের অনেক সময় is

  2. টেমপ্লেট: আপনি টেমপ্লেট ফাইলটি পরিবর্তন করতে পারেন যেখানে এইচটিএমএল আউটপুট পোস্ট করা হচ্ছে এবং এই জাতীয় চিত্রের আকার নির্দিষ্ট করুন:

ওয়ার্ডপ্রেসে এই ডকুমেন্টেশনটি দেখুন: https://codex.wordpress.org/Function_References/t__ost_thumbnail


0

হাই - আমারও একই সমস্যা ছিল। WooCommerce ক্যাটালগ এবং সম্পর্কিত পণ্য চিত্রগুলির জন্য ক্যাটালগ চিত্রগুলি ব্যবহার করে। এটি আদর্শ নয়, আপনার জন্য চিত্রের গুণমান বা গতি আলগা করুন। সুতরাং আমি আমার সম্পর্কিত পণ্যগুলির জন্য চতুর্থ চিত্র বিভাগ যুক্ত করার চেষ্টা করেছি। হাওডি ম্যাকজি সমস্যাটি সমাধান করেছেন। দয়া করে হাওডি ম্যাকগিজের উত্তরটি একবার দেখুন:

সম্পর্কিত পণ্য চিত্র আকার পরিবর্তন করুন: তার কোড পড়ুন !

এটি আমার প্রয়োজনের জন্য দুর্দান্তভাবে কাজ করেছে। আপনার সমস্যার জন্য একই যুক্তি প্রয়োগ করা যেতে পারে। আশাকরি এটা সাহায্য করবে.

শুভেচ্ছা সহ,

থিও

**সংযোজন: **

আমি একটি সমাধান খুঁজে পেয়েছি যা কাজ করে।

পদক্ষেপ 1: আপনার ফাংশন.পিপিতে একটি নতুন থাম্বনেইল আকার নির্ধারণ করুন। রেফারেন্স পরীক্ষা করুন: ডাব্লুপি কোডেক্স !

/*add your custom size*/
add_action( 'after_setup_theme', 'your_theme_setup' );
function your_theme_setup() {
add_image_size( 'your-thumb', 123, 123, true );//insert your values
}

দ্রষ্টব্য: 'আপনার-থাম্ব', আপনি পরে এই পরিবর্তনশীল নামটি ব্যবহার করবেন

পদক্ষেপ 2: তারপরে আপনি যেখানে আপনার বৈশিষ্ট্যযুক্ত পণ্যগুলি প্রদর্শন করতে চান সেখানে নিম্নলিখিত কোড যুক্ত করুন:

    <h1>featured products</h1> 
    <div class="woocommerce">
    <ul class= "products">

    <?php
    $args = array( 'post_type' => 'product', 'meta_key' => '_featured','posts_per_page' => 4,'columns' => '4', 'meta_value' => 'yes' );
     $loop = new WP_Query( $args );

     while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

                    <li class="product post-<?php echo get_the_ID(); ?>">    
                        <a href="<?php echo get_permalink( $loop->post->ID ) ?>" title="<?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>">

                            <?php woocommerce_show_product_sale_flash( $post, $product ); ?>
                            <?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'your-thumb'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="123px" height="123px" />'; ?></a>
                            <h3><?php the_title(); ?></h3><span class="price"><?php echo $product->get_price_html(); ?></span>

                    </li>

    <?php endwhile; ?>
    <?php wp_reset_query(); ?> 
    </ul>
    </div>

রেফারেন্স এবং তথ্য: ( www.haloseeker.com/display-woocommerce-featured-products-without-a-shortcode/ )

আমি এটিকে wootheme mystyle এর index.php (আমার হোমপেজ) এ রেখেছি। লাইনে 'আপনার-থাম্ব' ব্যবহার করতে ভুলবেন না:

<?php if (has_post_thumbnail( $loop->post->ID )) echo get_the_post_thumbnail($loop->post->ID, 'your-thumb'); else echo '<img src="'.woocommerce_placeholder_img_src().'" alt="Placeholder" width="123px" height="123px" />'; ?></a>

পদক্ষেপ 3: থাম্বনেইলগুলি পুনরায় তৈরি করুন, প্লাগইনটি ব্যবহার করুন https://wordpress.org/plugins/regenerate-thumbnails/

পদক্ষেপ 4: ব্রাউজারটি রিফ্রেশ করুন এবং ডিওএম পরীক্ষা করুন এবং মানগুলি তুলনা করুন

আপনার থিম অনুসারে আপনি মার্ক আপ এবং শ্রেণীর নাম পরিবর্তন করতে পারেন। আমি উপরের পদ্ধতিটি পরীক্ষা করেছি এবং এটি ভালভাবে কাজ করে।

কেবলমাত্র আমি এখন পর্যন্ত করতে পারিনি, তা হ'ল অ্যাড-টু-কার্ট-বোতামটি যুক্ত করা, কারণ আমি কীভাবে অ্যাড টু কার্টের বোতাম শর্টকোডে ভেরিয়েবল লিখতে জানি না। এই কোড:

<?php echo do_shortcode('[add_to_cart id="variable number?"]'); ?>

আশা করি এটা কাজে লাগবে.

এটি করার জন্য অবশ্যই আরও একটি মার্জিত উপায় আছে। উদাহরণস্বরূপ, ফাংশন.এফপিতে একটি ফাংশন সহ

শুভেচ্ছা সহ,

থিও

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.