অনুরোধ করা আকার উপস্থিত থাকলে কেবল থাম্বনেইল প্রদর্শন করুন


10

আমি যখন পোস্ট থাম্বনেলটি পেতে এবং আউটপুট দেয় এমন ফাংশনগুলি ব্যবহার করি, তখন তারা আপনার নির্দিষ্ট আকারে অনুরোধ করা থাম্বনেল প্রদর্শন করবে, তবে এই আকারটি উপস্থিত না থাকলে তারা থাম্বনেলটি মূল আকারে প্রদর্শন করবে এবং ব্রাউজারটিকে এটি আকার দিতে বাধ্য করবে।

অনুরোধের আকারটি উপস্থিত না থাকলে কীভাবে আমি তাদেরকে "কোনও চিত্র নয়" এর মতো একটি স্থানধারক প্রদর্শন করতে বাধ্য করতে পারি?


1
আপনি কি নিবন্ধিত থাম্বনেইল আকারের বিষয়ে কথা বলছেন বা আপনি পিক্সেলগুলিতে নির্বিচার নন-নিবন্ধিত আকার পাওয়ার চেষ্টা করছেন? কোড উদাহরণ দয়া করে?
রাস্তার

নিবন্ধিত আকারগুলি সম্পর্কে
অ্যালেক্স

উত্তর:


2

ধরেই নেওয়া হচ্ছে প্রশ্নটি সম্পর্কে wp_get_attachment_image_src
এটি সম্পর্কেও হতে পারে wp_get_attachment_linkতবে সম্পর্কিত হলেও এই বিশ্লেষণটিতে এটি অন্তর্ভুক্ত নয়।


এই প্রশ্নের উত্তর দিয়ে এই বিষয়ে সচেতন হয়েছেন: মিডিয়া ম্যানেজারে আমি কীভাবে সমস্ত ডাব্লুপি তৈরি হওয়া থাম্বনেইল দেখতে পারি?
ইস্যু সংক্রান্ত একটি কাজ কোড দেখতে এটির উল্লেখ এই প্রশ্ন উপর

এবং এটি এই ওয়ার্ডপ্রেস ফোরামের বিষয়ে নেতৃত্ব দেয় ।


ফাংশন wp_get_attachment_image_src ($ attachment_id, $ আকার, $ আইকন) ধারণকারী একটি অ্যারের ফেরৎ:

[0] => url  
[1] => width  
[2] => height  
[3] => is intermediate

যদি [3]মিথ্যা হয় তবে originalচিত্রের ডেটা ফেরত দেওয়া হয়।


উভয় wp_get_attachment_image_src এবং ভিতরে, ভিতরে wp_get_attachment_linkফাংশন নির্ভর । এবং এই যেখানে এই 4 আইটেম অ্যারে ফিরিয়ে দেওয়া হচ্ছে।image_downsize/wp-includes/media.php


1

আমি এ সম্পর্কে নিশ্চিত নই তবে আমি জানি আপনি পিএইচপি এর জেটিমেজেসাইজ () ফাংশনটি এরকম কিছু ব্যবহার করতে পারেন:

//This must be in one loop

if(has_post_thumbnail()) {
    $wanted_width = 300;
    $wanted_height = 150;
    $id = get_post_thumbnail_id()
    $image = wp_get_attachment_image_src($id);
    if ($image){
        list($width, $height) = getimagesize($image[0]);
        if (($wanted_height = $width) && ($wanted_height = $height)){
            the_post_thumbnail();
        }
        else{
            //default when no image
            echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
        }
    }
    else{
        //default when no image
        echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
    }
} else {
    //default when no image
    echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}

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


1

অনুরোধের আকারটি উপস্থিত থাকলেই আমি থাম্বনেলটি প্রদর্শন করতে সক্ষম হলাম:

if ( has_post_thumbnail() )  {
    $imgdata = wp_get_attachment_image_src( get_post_thumbnail_id(), 'thumbnail' ); //change thumbnail to whatever size you are using
    $imgwidth = $imgdata[1]; // thumbnail's width                   
    $wanted_width = 300; //change this to your liking
    if ( ($imgwidth < $wanted_width ) ) {
        the_post_thumbnail();
    } else { 
        //do whatever you want
    }
}

wp_get_attachment_image_srcকোডেক্স পড়ুন সম্পর্কে আরও জানার জন্য।


0

একটি প্লাগইন রয়েছে যা প্রকৃতপক্ষে চিত্রের আকারটি উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে তৈরি করবে। http://austinmatzko.com/wordpress-plugins/filosofo-custom-image-sizes/

আমার এখনও এই প্লাগইনটি ব্যবহার করার দরকার নেই। তবে এটি একটি শট মূল্য। ডাব্লুপি কোরে অনুরূপ কার্যকারিতা যুক্ত করার কথা রয়েছে, সম্ভবত ৩.২ http://core.trac.wordpress.org/ticket/15311 এ


0

এটি একটি ভাল উপায় বলে মনে হচ্ছে। গ্লোবাল ভেরিয়েবল w _wp_additional_image_s आकार ব্যবহার করুন, এটি সমস্ত নিবন্ধিত চিত্র_ আকার সংরক্ষণ করে। সুতরাং আপনি যদি কোনও চিত্রের আকারের নাম সংজ্ঞায়িত করা হয় কিনা তা পরীক্ষা করতে চান:

  global $_wp_additional_image_sizes;
  if ( array_key_exists( 'desired-image-size' , $_wp_additional_image_sizes) )
  {
    //your code here
  }
  else
  {
    //default code here 
  }

0

ওয়ার্ডপ্রেস-এর অন্তর্নির্মিত "get_interedia_image_sizes" ফাংশনটি ব্যবহার করে সেরা অ্যারে হিসাবে চিত্র মাপের সম্পূর্ণ তালিকাটি ফিরিয়ে আনুন এবং তারপরে সন্ধান করুন।

show_image_by_size( 10470, 'custom_size' );

function show_image_by_size( $_post_id, $_desired_size ) {
  $_sizes = get_intermediate_image_sizes();
  $_thumbnail_id = get_post_thumbnail_id( $_post_id );
  $_image_size = ( in_array( $_desired_size , $_sizes ) ) ? $_desired_size : 'full';
  $image = wp_get_attachment_image_src( $_thumbnail_id, $_image_size );
  echo '<img src="' . esc_url( $image[0] ) . '" />';
}

-1

সম্ভবত এটি সাহায্য করবে

<?php 
//This must be in a loop
if(has_post_thumbnail()) {
    the_post_thumbnail();
} else {
    echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
?>

থেকে: http://codex.wordpress.org/Function_References/has_post_thumbnail
আমি চিত্রটির আকার বিদ্যমান কিনা তা পরীক্ষা করতে এই জাতীয় কিছু ব্যবহার করি:

if (function_exists('has_post_thumbnail') && has_post_thumbnail('medium')) {
//// code to display thumbnail goes here
}
else {
/// otherwise do this
}

আশা করি এটি আপনাকে যেতে সাহায্য করবে।

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