ইন্টারনেট ব্রাউজারগুলির অগ্রগতির সাথে আমি ওয়েবসাইটগুলি কোডিংয়ের সময় নিজেকে এসভিজিএস ব্যবহার করে আরও বেশি স্বাচ্ছন্দ্য বোধ করি ... বিশেষত আইকনগুলির জন্য এবং পিএনজি দ্বারা ফ্লাইতে প্রতিস্থাপন করা যায় এমন সহজ গ্রাফিক্স।
দেখে মনে হচ্ছে ওয়ার্ডপ্রেস প্রায় এসভিজিএস সমর্থন করে। আমি প্রায় বলেছি কারণ:
এটি ডিফল্টরূপে ওয়ার্ডপ্রেসে কোনও অনুমোদিত ফাইল প্রকার নয়। সুতরাং আপনাকে এসভিজিগুলি আপলোড করার আগে এটি যুক্ত করা দরকার
আপনি মিডিয়া গ্যালারীটিতে একটি এসভিজি থাম্বনেল দেখতে পাচ্ছেন না। (নীচের চিত্র দেখুন)
কখনও কখনও যখন আপনি এটিকে এডিটরটিতে যুক্ত করেন (অ্যাড মিডিয়া বোতামের মাধ্যমে) সম্পাদক এসভিজি আকার জানেন না, সুতরাং এটি একটি চিত্র হিসাবে এসভিজি যুক্ত করলেও এর প্রস্থ এবং উচ্চতা শূন্য থাকে।
মিডিয়া আপলোড পপআপের মধ্যে থেকে যখন আপনি "চিত্র সম্পাদনা করুন" এ ক্লিক করেন আপনি "চিত্রের অস্তিত্ব নেই" বলে একটি বার্তা পাবেন। নীচে চিত্র দেখুন।
আমি এই তালিকার 1 আইটেমের সাথে ভাল আছি, তবে কী কোনও ফিক্স আইটেম 2 3 এবং 4 কীভাবে খুঁজে পেয়েছে?
আইটেম 1 সম্পর্কে আপডেট করুন:
নতুন মাইম টাইপের (যেমন এসভিজি) অনুমতি দেওয়ার জন্য আপনি কেবল ফাংশন.ফ্পে একটি হুক যুক্ত করতে পারেন
function allow_new_mime_type($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'mime_types', 'allow_new_mime_type' );
এখন আপনার এসভিজিগুলি আপলোড করতে সক্ষম হওয়া উচিত। আপনি এই টিউটোরিয়ালে আরও তথ্য পেতে পারেন । এটি কেবলমাত্র আইটেম 1 সমাধান করে, যা আমি আগেই বলেছি এটি আমার পক্ষে কোনও সমস্যা নয় (যদিও আমি মনে করি এটি ডিফল্টরূপে অনুমোদিত হতে হবে)।
আইটেম 2 সম্পর্কে আপডেট করুন:
আমি কিছু খনন করেছি এবং ফাংশনটি ট্র্যাক করেছি যা স্থির করে যে কোনও সংযুক্তি একটি চিত্র কিনা। দেখে মনে হচ্ছে এটি সমস্তই ডাব্লুপি-অন্তর্ভুক্ত / পোস্ট.এফপি এই ফাংশনে নেমে আসে
/**
* Check if the attachment is an image.
*
* @since 2.1.0
*
* @param int $post_id Attachment ID
* @return bool
*/
function wp_attachment_is_image( $post_id = 0 ) {
$post_id = (int) $post_id;
if ( !$post = get_post( $post_id ) )
return false;
if ( !$file = get_attached_file( $post->ID ) )
return false;
$ext = preg_match('/\.([^.]+)$/', $file, $matches) ? strtolower($matches[1]) : false;
$image_exts = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' );
if ( 'image/' == substr($post->post_mime_type, 0, 6) || $ext && 'import' == $post->post_mime_type && in_array($ext, $image_exts) )
return true;
return false;
}
আপনি দেখতে পাচ্ছেন যে এই ফাংশনে সংজ্ঞায়িত বৈধ চিত্র এক্সটেনশনের একটি অ্যারে রয়েছে। সেই অ্যারেটি সংশোধন করার জন্য এমন কোনও ফিল্টার দেখছি না I তবে এটি একটি শুরু ...
আমি নিশ্চিত নই কেন সর্বশেষ যদি বিবৃতিটি এসএমএসের জন্য মিথ্যা ফিরিয়ে দেয়। এমনকি যদি আমি অ্যারে $ ইমেজ_এক্সেটগুলিতে এসভিজি এক্সটেনশনটি না যোগ করি তবে প্রথম শর্তটি সত্য হওয়া উচিত, তাই না?
if ( 'image/' == substr($post->post_mime_type, 0, 6)
এটি পরীক্ষা করে যে 'চিত্র /' মাইম টাইপের প্রথম ছয় অক্ষরের সাথে সমান, যদি এসভিজি-র জন্য চিত্র / এসভিজি + এক্সএমএল হয় (প্রথম ছয়টি "চিত্র /")।
হালনাগাদ
আরও তদন্ত করার পরে, মনে হয় সমস্যাটি মোটেও wp_attachment_is_image এর সাথে নয়, তবে এসভিজি আপলোড হওয়ার পরে চিত্রের আকার (প্রস্থ এবং উচ্চতা) সংযুক্তি মেটাডেটাতে যুক্ত করা হচ্ছে না। এর কারণটি ব্যবহৃত চিত্রটি গণনা করার ফাংশনটি হ'ল পিএইচপি ফাংশন জিটিমেজেসাইজ (), যা এসভিজির জন্য কোনও চিত্রের আকার দেয় না। জেটিমেজেসাইজ ফাংশন এবং এসভিজেস কীভাবে আচরণ করে সে সম্পর্কে স্ট্যাকওভারফ্লোতে আমি একটি উত্তর পেয়েছি। এটি এখানে দেখুন।