add_image_size অপসারণ বা আপডেট করুন


16

আমি এমন একটি থিমের সাথে কাজ করছি যা ব্যবহার করে বেশ কয়েকটি চিত্রের মাপ সঠিকভাবে সংজ্ঞায়িত করা হয়েছে:

add_image_size( 'name', 500, 200, true );

আমি চাইল্ড থিম থেকে এই সংজ্ঞায়িত আকারগুলি ওভাররাইড করতে চাই:

add_image_size( 'new-name', 400, 300, true );

আমি জানি আমি নতুন আকার যুক্ত করতে পারি তবে আমি যদি একই নামটি যুক্ত করি তবে:

add_image_size( 'name', 400, 300, true );

তারপরে প্যারেন্ট ফাংশন কলটি ব্যবহার করা হয় - সন্তানের একটিকে উপেক্ষা করা হয় - অতিরিক্ত নিয়ম যুক্ত করা অতিরিক্ত চিত্র যুক্ত করে যা কখনই ব্যবহার করা হবে না - এটি এতটা খারাপ নয়, তবে এটি দক্ষ নয়।

একটি যুক্ত ছবি আকার নিবন্ধন করার জন্য কোন ফাংশন আছে?

চিয়ার্স!

রশ্মি


আপনি কি দয়া করে প্রাসঙ্গিক পুরো কোডটি পোস্ট করতে পারেন ? করছেন add_image_size()কল শুধু নির্মমভাবে বসা functions.phpবা তাদের যেটি সঠিকভাবে একটি কলব্যাক এবং লাগানো মধ্যে ভিতরে আবৃত করা হয় after_setup_theme? আপনার প্রশ্নের উত্তর দেওয়ার জন্য কোনটি সমালোচিত তা জানা।
চিপ বেনেট 16

হাই চিপ - আপনার মন্তব্যের জন্য ধন্যবাদ - আপনি ঠিক বলেছেন এটি after_setup_theme এ আবৃত - তাই এটি আবার অগ্রাধিকার সম্পর্কে - আমি সর্বদা এটি মিস করি!
কিউ স্টুডিও

উত্তর:


22

add_image_size( $name, $width, $height, $crop )ফাংশন সুতনু যথেষ্ট একই ব্যবহার করে অনেকগুলি কল হ্যান্ডেল হয় $name। এটি কেবল বিদ্যমান মানটিকে ওভাররাইট করে :

$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop );

সুতরাং এর অর্থ হল যে কাস্টম চিত্রের আকারের পিতামাতার থিমের সংজ্ঞাটি ওভাররাইড করার জন্য আপনার যা যা করা দরকার তা হ'ল পিতামাতার থিমের কলের পরে আপনার কলটি add_image_size()আগুনের দিকে চলে

অনুমান করে যে প্যারেন্ট থিমটি এটি পছন্দ করে:

function parent_theme_setup() {
    add_image_size( 'name', 500, 200, true );
    add_image_size( 'new-name', 400, 300, true );
}
add_action( 'after_setup_theme', 'parent_theme_setup' );

তারপরে অভিভাবক থিমের add_image_size()কলটি after_setup_themeহুকের দিকে আগুন ধরে যায় , ডিফল্ট অগ্রাধিকারে (যেমন 10)।

(দ্রষ্টব্য: যদি কল করা হয় না একটি কলব্যাক আবৃত, তারপর তারা এ আগুন plugins_loadedহুক, অগ্রাধিকার এ 10।)

এখানে সমালোচনামূলক অংশটি রয়েছে: চাইল্ড থিমের functions.phpফাইলটি প্যারেন্ট থিমের আগে পার্স করা হয়েছে , তাই যদি আপনি একই add_image_size()কলগুলি আপনার কলগুলিকে চালিত করতে ব্যবহার করেন তবে পিতামহীন থিমের কলগুলি সেগুলি ওভাররাইড হয়ে যাবে add_image_size()

সন্তানের থিমের কলটি পিতামাতার থিমের পরে চালিত হয় তা নিশ্চিত করার জন্য সমাধানটি হুক বা পরে একটি নিম্ন অগ্রাধিকার ব্যবহার করাadd_image_size()

পিতামহীন থিমটি তার কলগুলি কীভাবে চালায় তা নির্বিশেষে এই কৌশলটি করা উচিত:

function child_theme_setup() {
    add_image_size( 'name', 400, 300, true );
}
add_action( 'after_setup_theme', 'child_theme_setup', 11 );

নোট করুন যে আমরা একই after_setup_themeহুক ব্যবহার করি তবে অগ্রাধিকার দিয়ে শুরু করে উচ্চতর অগ্রাধিকার (নিম্ন সংখ্যা) থেকে নিম্ন অগ্রাধিকার (উচ্চতর সংখ্যা) এর জন্য একটি কম অগ্রাধিকার (যেমন 11পরিবর্তে 10। কলব্যাক্স ফায়ার) ব্যবহার করুন 0So সুতরাং অগ্রাধিকারে হুক করা একটি কলব্যাকের পরে11 ফায়ার হবে একটি কলব্যাক অগ্রাধিকার মধ্যে hooked ।10

এই নোটটি after_setup_themeহুকের পরে নিজেই আগুন জ্বলে ওঠে plugins_loaded, সুতরাং এই কলব্যাকটি প্যারেন্ট থিমটিকে ওভাররাইড করবে, এমনকি পিতামহীন থিমটি _doing_it_wrong()উপযুক্ত কলব্যাকের মধ্যে যেমন কলগুলি মোড়ানো না করে, একটি উপযুক্ত হুকের মধ্যে আবদ্ধ করা হয়।


চমত্কার - ধন্যবাদ চিপ! - আমি উভয়কে একই অগ্রাধিকারে পেয়েছি - সন্তানের পিতামাতার পরে এবং সমস্ত কাজ ঠিকঠাক করে ফেলেছি।
কিউ স্টুডিও

প্লাগইন যদি add_image_size কল করছে: আমি
Zhianc

1

যদি কেউ কেবল মাত্রা পরিবর্তনের বিপরীতে অতিরিক্ত চিত্রের মাপগুলি আনসেট করতে চায় তবে মুছে ফেলা_ম্যাগ_সাইজ (স্ট্রিং $ নাম) ব্যবহার করুন , যেমন

function pinboard_child_theme_setup( $sizes) {

    $image_size_names = array('thumbnail', 'medium', 'large',
        'slider-thumb', 'blog-thumb', 'teaser-thumb', 'gallery-1-thumb',
        'gallery-2-thumb', 'gallery-3-thumb', 'image-thumb', 'video-thumb');

    $image_size_names_length = count($image_size_names);
    for($x = 0; $x < $image_size_names_length; $x++) {
        remove_image_size($image_size_names[$x]);
    }   
}
add_action( 'after_setup_theme', 'pinboard_child_theme_setup', 11);

-1

আপনার চিলি থিমটিতে আপনাকে ব্যবহার করা দরকার add_action( 'after_setup_theme','new-name');


নতুন নামটি এখানে ফাংশনটির নাম বা আপনি আপনার প্রধান ফাংশনের জন্য যে নামটি ব্যবহার করছেন
রবিন

আপনার উত্তরে একটি ব্যাখ্যা যুক্ত করুন: কেন এবং কীভাবে এটি সমস্যার সমাধান করে? নোট এটি new-nameএকটি অবৈধ কলব্যাক নাম।
ফুসিয়া

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