চিত্রের মাত্রা বৈশিষ্ট্যগুলি মুছতে ফিল্টার করবেন?


35

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

আমি এই ফিল্টারটি সহ আমার বৈশিষ্ট্যযুক্ত চিত্রগুলি দিয়ে এটি করছি:

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

আমি জানি আমি যদি প্রয়োজন হয় তেমন কনটেন্টে একই ফিল্টারটি প্রয়োগ করতে পারি । তবে এটি করার আরও ভাল উপায় আছে কি?


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

1
হতে পারে আপনার নিজের প্রশ্ন হিসাবে এটি পোস্ট করা উচিত? এটি আমার থেকে যথেষ্ট স্বতন্ত্র বলে মনে হয় যে এটি তার নিজস্ব প্রতিক্রিয়া প্রাপ্য। তবুও, আমি চেষ্টা করব এবং উত্তর দেব ... অন্য যে কেউ এই উত্তরটি সন্ধান করতে এবং একই সমস্যা পেয়েছে: আপনার সমস্যাটি হ'ল ফাংশনটি img_caption_shortcodeযা ক্যাপশন শর্টকোড প্রক্রিয়া করে তার প্রয়োজন ক্যাপশন শর্টকোড বৈশিষ্ট্যে একটি প্রস্থ নির্দিষ্ট করা দরকার। অন্যথায়, এটি ক্যাপশনটি পুরোপুরি এড়িয়ে যায় এবং কেবল [caption]শর্টকোড ট্যাগগুলির মধ্যে মোড়ানো সামগ্রীটি দেয় ।
স্বর্ণপ্যাবস

আপনি যদি সংজ্ঞায়িত প্রস্থ ছাড়াই ক্যাপশন শর্টকডগুলি ব্যবহার করতে সক্ষম হতে চান তবে আপনাকে ফিল্টারটিতে আবদ্ধ একটি ফাংশনে আপনার ক্যাপশন মার্কআপটি সংজ্ঞায়িত করতে হবে img_caption_shortcode। এর মতো কোনও ফাংশনের জন্য কোডটি লিখে দেওয়া আমার পক্ষে এখানে মন্তব্যে ফিট করার চেয়ে বেশি।
সুবর্ণপ্লেস

@ গোল্ডেনাপলস, আপনার সহায়ক উত্তরের জন্য ধন্যবাদ। আপনার পরামর্শ অনুসারে আমি এখানে এসেছি এবং এখানে একটি নতুন প্রশ্ন জিজ্ঞাসা করেছি: wordpress.stackexchange.com/questions/32931/… । এতে কোনও ইনপুট প্রশংসিত হবে। আমি প্রশ্নে ব্যাখ্যা হিসাবে, আমি নিশ্চিত না যে ফিল্টারটি img_caption_shortcodeসমস্যা সমাধানের পক্ষে যথেষ্ট হবে।
ডোমিনিক পি

1
আপনার প্রকৃত সামগ্রী না দেখে আপনি যা করার চেষ্টা করছেন তার বৃহত্তর চিত্রটি আমি মিস করছি, তবে কেবল সিএসএস ব্যবহার করে কী এর প্রতিকার করা যায় না? আপনি যদি আপনার চিত্রগুলিতে সর্বাধিক প্রস্থ ব্যবহার করছেন তবে আপনার উচ্চতা যুক্ত করে উচ্চতার সমস্যাটি জয় করতে সক্ষম হওয়া উচিত: অটো; আপনার বিষয়বস্তু ইমেজ।
বাইনারিঅরজ্যানিক

উত্তর:


36

সবাইকে ধন্যবাদ!

Image_send_to_editor ফিল্টার আমি জন্য ... ধন্যবাদ খুঁজছেন ছিল @ এটা ইশারা জন্য t31os।

এখানে এখন আমার ফাংশন।

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );

function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

এটি পুনরুদ্ধারকৃত চিত্রগুলি থেকে ইনলাইন মাত্রা বৈশিষ্ট্যগুলি সরিয়ে the_post_thumbnail()দেয় এবং সেই বৈশিষ্ট্যগুলি সম্পাদকে যুক্ত হওয়া নতুন চিত্রগুলিতে যুক্ত হওয়া থেকে বাধা দেয়। তাদের পুনরুদ্ধার করা চিত্রগুলি wp_get_attachment_imageবা অন্যান্য সম্পর্কিত ফাংশনগুলি থেকে সরান না (সেখানে কোনও হুক নেই), তবে প্রয়োজনে টেমপ্লেট ফাইলগুলিতে এই মামলাগুলি প্রক্রিয়া করা যায়।


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

1
@ ম্যাটস্লে এটি কি কেবলমাত্র আমার সাইটের সাইটের বিষয়বস্তু স্থায়ীভাবে সংশোধন করার ক্ষেত্রে সমস্যা আছে? কোনও প্রতিক্রিয়াশীল থিমটিকে ওয়েবসাইটের বিষয়বস্তুটিকে সঠিকভাবে ফর্ম্যাটে আনতে হবে না। আমি এই ব্লগ পোস্টের মতো ফিল্টারটি সরিয়ে তার image_send_to_editorপরিবর্তে এটিকে যুক্ত করতে ভোট দিয়েছি । এটি উপস্থাপনা যুক্তিকে বিষয়বস্তু থেকে পৃথক করে। the_content
বিএফট্রিক

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

2
সতর্কতা: এই উত্তরটি ওয়ার্ডপ্রেস 3.5.1 এ চিত্রের ক্যাপশনগুলিকে ব্রেক করে।
তারযুক্ত

5

এই স্ক্রিপ্টটি কিছুটা পরিবর্তন করেছে। সাহায্যের জন্য ধন্যবাদ!

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );
// Genesis framework only
add_filter( 'genesis_get_image', 'remove_thumbnail_dimensions', 10 );
// Removes attached image sizes as well
add_filter( 'the_content', 'remove_thumbnail_dimensions', 10 );
function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

5
যত্নবান, যদিও। ফিল্টারিং_কন্টেন্টটি ইউটিউব ভিডিও এবং অন্য কোনও প্রস্থ / উচ্চতার বৈশিষ্ট্যও ফিল্টার করবে will
মাইকএনগারেট

1
সত্য, তবে এটি একটি প্রতিক্রিয়াশীল সাইটে ভাল জিনিস হতে পারে। যদি চিত্রগুলির জন্য এটির প্রয়োজন হয় তবে অন্য মিডিয়ার জন্য এটিরও সম্ভবত প্রয়োজন।
বিএফট্রিক

1

যদি আপনি "গ্যালারী" হিসাবে ফাংশন.ফ্পে চিত্রের আকার সেট করেন

add_image_size( 'gallery', 200, 120, true );

আপনি নির্দিষ্ট চিত্র আকার যেমন "গ্যালারী" এর প্রস্থ এবং উচ্চতা সরাতে পারেন:

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 4 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id,$post_thumbnail) {
    if ($post_thumbnail=='gallery'){
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    }
    return $html;
}

0

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

দুর্ভাগ্যক্রমে, স্ক্রিপ্টগুলি যে চিত্রটি প্রকৃতপক্ষে সন্নিবেশ করায় সেগুলি জাভাস্ক্রিপ্টে নির্মিত এবং টিনিএমসিই উইসইভিগ সম্পাদকের সাথে ইন্টারঅ্যাক্ট করেছে। এটিতে সরাসরি ookুকে যাওয়ার কোনও উপায় থাকতে পারে, তবে মানক add_filter()কলগুলি ব্যবহার করে না ।


1
image_send_to_editorএখানে কাজ করতে একটি ফিল্টার না ?
t31os

@ t31os - আমি মনে করি এটিই আমি খুঁজছিলাম! কেন জানি না আগে আমি সেই হুক আগে দেখিনি।
18-17

আমি অবশ্যই আশা করি এটি সাহায্য করে, দেখে মনে হচ্ছে এটি কৌশলটি করতে পারে ... রিপোর্ট করুন এবং আমাদের জানান। :)
t31os

@ t31os হ্যাঁ, এটি চালাকি করলেন! ধন্যবাদ! আপনি এটির উত্তর না পেয়ে আমি উত্তর হিসাবে পোস্ট করব।
সোনার অ্যাপলস

2
আপনি তার সাথীর জন্য যান, আমি খুব ধোঁয়াশ নেই, খুশি আপনি একটি সমাধান খুঁজে পেতে সক্ষম হয়েছেন ...;)
t31os
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.