কাস্টম পোস্ট প্রকারের সাথে টেম্পলেট_সামগ্রী ব্যবহার করুন


11

আমার প্লাগইন ডিরেক্টরিতে ফাইলে ফিরে যাওয়ার আগে আমি থিম ফোল্ডারে একটি উপযুক্ত টেম্পলেট পরীক্ষা করতে চাই। আমার কোডটি এখানে:

add_filter ('টেমপ্লেট_মিলন', 'sermon_template_incolve');
ফাংশন sermon_template_incolve ($ টেমপ্লেট) {
    if (get_query_var ('post_type')) == 'wpfc_sermon') {
        যদি (is_archive () || হয়_সন্ধান ()):
           যদি (file_exists (TEMPLATEDIR। '/ আর্কাইভ- wpfc_sermon.php'))
              TEMPLATEDIR ফিরুন। '/Archive-wpfc_sermon.php';
           প্রত্যাবর্তন নাম (__ ফাইল__) ILE '/Views/archive-wpfc_sermon.php';
        অন্য:
           যদি (file_exists (TEMPLATEDIR। '/single-wpfc_sermon.php'))
              TEMPLATEDIR ফিরুন। '/Single-wpfc_sermon.php';
           প্রত্যাবর্তন নাম (__ ফাইল__) ILE '/Views/single-wpfc_sermon.php';
        শেষ যদি;
    }
    রিটার্ন $ টেমপ্লেট;
}

সমস্যা হচ্ছে, এটি কাজ করে না! :-) এটি সর্বদা আমার প্লাগইন ফোল্ডারে ফাইলটি রাখে। কোন ধারণা কি করব? আমি প্রচুর প্রকরণের চেষ্টা করেছি কিন্তু কাজ করার মতো কিছু পাচ্ছে না বলে মনে হচ্ছে! আগাম ধন্যবাদ! নাবিক

সম্পাদনা

আমি প্রত্যাশা করছি আর্কাইভ-wpfc_sermon.php যদি এটি বিদ্যমান থাকে তবে থিম ফোল্ডার থেকে ফিরে আসবে। তবে আমার প্লাগইন থেকে ফাইলটি সর্বদা ফিরে আসে returned আপনার সাহায্যের জন্য ধন্যবাদ! এটি আমার সার্মন ম্যানেজার প্লাগইন থেকে সংগ্রহস্থলটিতে উপলব্ধ।


আপনি যখন পরিবর্তে আপনার প্লাগিন টেম্পলেট ফাইলটি প্রত্যাশা করছেন তখন কোন থিম টেম্পলেট ফাইলটি ফিরে আসবে?
চিপ বেনেট

আমি প্রত্যাশা করছি আর্কাইভ-wpfc_sermon.php যদি এটি বিদ্যমান থাকে তবে থিম ফোল্ডার থেকে ফিরে আসবে। তবে আমার প্লাগইন থেকে ফাইলটি সর্বদা ফিরে আসে returned আপনার সহায়তার জন্য ধন্যবাদ_সিপ্পেনেট! এটি আমার সার্মন ম্যানেজার প্লাগইন থেকে সংগ্রহস্থলটিতে উপলব্ধ।
জ্যাক

উত্তর:


6

সুতরাং, সমস্যাটি ঠিক কী কারণে ঘটছে তা আমি নিশ্চিত নই, তবে আপনি নিম্নলিখিতগুলি চেষ্টা করতে পারেন:

  1. প্লাগইন ফাইলের পথ : এর dirname(__FILE__)সাথে প্রতিস্থাপন করুনplugin_dir_path( __FILE__ )
  2. থিম ফাইলের পথ : এর TEMPLATEDIRসাথে প্রতিস্থাপন করুনget_stylesheet_directory()

এটা সম্ভব যে সমস্যা সরাসরি ধ্রুবক উল্লেখ থেকে আসে।


0

এটি আপনার পক্ষে কাজ করবে কিনা তা সম্পর্কে আমি নিশ্চিত নই তবে এটি শট করার পক্ষে মূল্যবান। যখন আমি একটি বিশেষ টেম্পলেট প্রয়োজন তখন আমি আমার কাস্টম পোস্ট ধরণের জন্য এটি সর্বদা ব্যবহার করি।

// Template selection Defines the template for the custom post types.
function my_template_redirect()
  {
  global $wp;
  global $wp_query;
  if ($wp->query_vars["post_type"] == "your_custom_post_type")
  {
    // Let's look for the your_custom_post_type_template.php template 
   // file in the current theme
    if (have_posts())
      {
          include(TEMPLATEPATH . '/your_custom_post_type_template.php');
          die();
      }
      else
      {
          $wp_query->is_404 = true;
      }
    }
}

আপনাকে যা করতে হবে তা হ'ল এই স্ক্রিপ্টটি আপনার ফাংশন.এফপি ফাইলে যুক্ত করুন এবং টেম্পলেট ফাইলটি আপনার থিম ডিরেক্টরিতে রেখে দিন।

এটি একটি শটের জন্য মূল্যবান হতে পারে এবং আপনার প্লাগইনটির সাথে দ্বন্দ্ব সৃষ্টি করতে পারে না। তবে আমি এটি সম্পর্কে নিশ্চিত নই।

আমি ভুলে গেছি ... অ্যাকশন যুক্ত করতে ভুলবেন না। :)

add_action("template_redirect", 'my_template_redirect');

ধন্যবাদ @ নিকোল, আমি পোস্ট করা কোডটি আমার টেম্পলেট ফাইলটিতে কল করতে দুর্দান্ত কাজ করে। তবে আমি আমার প্লাগইন ফোল্ডারে একটি লোড করার আগে একই নামের একটি ফাইলের জন্য বর্তমান থিম ফোল্ডারটি স্ক্যান করতে চাই to
জ্যাক

@ জ্যাক, তাই মূলত এটি মুহুর্তে থিম ডিরেক্টরিতে টেম্পলেটটির আগে প্লাগইন ডিরেক্টরি থেকে আপনার ফাইলটি কল করে? হুম এই আরও একটি চিন্তা দিতে হবে। : ডিআই ভাল চ্যালেঞ্জ পছন্দ!
নিকোল

সেটা ঠিক! এটা সত্যিই আমি স্ট্যাম্প ছিল।
জ্যাক 16

@ জ্যাক, এটি বোবা প্রশ্নের মতো মনে হতে পারে তাই যদি হয় তবে আমাকে ক্ষমা করুন। :) আপনি যে কোড পোস্ট করেছেন তা হ'ল এটি প্লাগইনে আছে বা এটি ফাংশন.ফ্প ফাইলটিতে রয়েছে?
নিকোল

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