আমি একটি ভেরিয়েবল সংজ্ঞায়িত করেছি - আসুন এটির নাম দিন ph header_var, যা শিরোনাম.পিএফপি ফাইলটিতে স্থাপন করা হয়েছে। আমি এই পরিবর্তনশীলটি আমার টেমপ্লেট ফাইলে (এই ক্ষেত্রে ট্যাক্সোনমি.এফপি) পাস করতে চাই।
global
কৌতুকটি করার খুব প্রস্তাবিত উপায় নয়, তবে আপনি যদি এটি সঠিকভাবে ব্যবহার করেন তবে এটি কাজ করে: ভেরিয়েবলটি পুনরুদ্ধার করার আগে header.php
এবং পুনরায় পরিবর্তনের আগে taxonomy.php
এটি রাখুন (get_header () অন্তর্ভুক্ত করার পরে header.php
)
// in header.php
global $header_var;
$header_var = 'A value';
// in taxonomy.php
get_header();
global $header_var;
echo $header_var; // 'A value'
আমি আমার ট্যাক্সোনমি.এইচপিপি থেকে শিরোনাম.এফপি থেকে $ টেম্পলেট_ভারকে পাশ কাটিয়ে যেমন অন্যভাবে করতে পারি তেমন করতে চাই। শিরোনাম লোড হয়ে যাওয়ার পরে ভেরিয়েবলটি ঘোষিত না হওয়ায় এটি কি সম্ভব?
এটি পিএইচপি, যাদু বা টাইম মেশিন নয়: সময়ের বিধি বিশ্বব্যাপী অন্যান্য অংশের মতো ওয়ার্ডপ্রেসেও প্রযোজ্য ।
সুতরাং, না, আপনি কোনও পরিবর্তনশীল সময় মতো পাস করতে পারবেন না, তবে সাধারণত, টেম্পলেটগুলিতে আপনি header.php
কল করে অন্তর্ভুক্ত করেন get_header()
যদি আপনি সেই ফাংশনটি কল করার আগে কোনও ভেরিয়েবল সেট করে থাকেন তবে বৈশ্বিক কৌতুকটিও কাজ করবে:
// in header.php
global $template_var;
echo $template_var; // 'A value'
// in taxonomy.php
global $template_var;
$template_var = 'A value'
get_header();
তবে আপনার যদি ভেরিয়েবলগুলি header.php
এবং টেম্পলেটগুলিতে ভাগ করে নেওয়া দরকার তবে সবচেয়ে ভাল কাজ হ'ল হেডারে বা টেমপ্লেটগুলিতে নয়, তবে ভেরিয়েবলগুলি ঘোষণা করতে হলে নিয়ন্ত্রণ করার জন্য অ্যাকশন হুকfunctions.php
ব্যবহার করা উচিত।
'template_redirect'
আপনার বর্তমান ক্যোয়ারিতে অ্যাক্সেস রয়েছে এমন জায়গায় একটি দরকারী হুক রয়েছে এবং এটি header.php
টেমপ্লেটগুলি লোড হওয়ার আগেই বহিস্কার করা হয়।
মোটামুটি উদাহরণ:
// in functions.php
add_action( 'template_redirect', 'get_my_shared_vars' );
function get_my_shared_vars() {
static $shared_vars = NULL;
if ( empty( $shared_vars ) ) {
$shared_vars = array( 'header_var' => 'An header value' );
if ( is_tax() || is_category() || is_tag() ) {
$shared_vars['taxonomy_var'] = 'A taxonomy value';
}
}
return $shared_vars;
}
// in header.php
$shared_vars = get_my_shared_vars();
echo $shared_vars['header_var']; // 'An header value'
// in taxonomy.php
$shared_vars = get_my_shared_vars();
echo $shared_vars['taxonomy_var']; // 'A taxonomy value'
পূর্ববর্তী কোডে, ভেরিয়েবল সেট করতে ব্যবহৃত ফাংশনের static
সমস্ত কোডটি কীওয়ার্ডের জন্য ধন্যবাদ get_my_shared_vars
শুধুমাত্র একবারে রান হয়, সুতরাং ফাংশনটিকে একাধিকবার কল করলে আপনার পারফরম্যান্স সংক্রান্ত সমস্যা নিয়ে চিন্তা করতে হবে না।