কাস্টম পোস্টের ধরণের প্লাগইন: আমি টেমপ্লেটটি কোথায় রাখি?


11

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

তাহলে এখানে সেরা অনুশীলন কি? কীভাবে আমরা সিপিটি প্লাগইনে টেমপ্লেট ফাইলগুলি অন্তর্ভুক্ত করব? কীভাবে এটি করা হয় তার জন্য আপনি আমাকে বিশেষ উদাহরণগুলির দিকে নির্দেশ করতে পারেন?

আপনার সাহায্যের জন্য ধন্যবাদ.



1
এটি কোনও সদৃশ তা নিশ্চিত নয়, তবে এটি একটি বিষয়গত প্রশ্ন। আমার কাছে সেরা অনুশীলন হ'ল থিমটি পরিচালনা করতে দেওয়া। অন্যদের কাছে সেরা অনুশীলনগুলি হ'ল প্লাগইনটিকে সম্পূর্ণ স্ব-অন্তর্নিহিত করা।
chrisguitarguy

@ জোহানেসপিল জিজ্ঞাসা করার আগে আমি অনুসন্ধান করেছি। তবে লিঙ্কের জন্য ধন্যবাদ। আমি এটি সন্ধান করা হবে।
কুখ্যাত

1
@ chrisguitarguy সম্মত থিমটি হ্যান্ডল করার সাথে আমার সমস্যাটি হ'ল যদি আমরা থিমগুলি স্যুইচ করি তবে প্লাগইনটি সামঞ্জস্য করার জন্য আমাদের কিছু কাস্টমাইজেশন করতে হবে। অন্যথায়, আমরা সিপিটি পার্টিতে নিয়ে আসা জিনিসগুলি হারাব।
কুখ্যাত

উত্তর:


8

তাহলে এখানে সেরা অনুশীলন কি?

আমি থিমটিকে পরিচালনা করতে এবং আপনার প্লাগইনটির সাথে একটি ডিফল্ট সরবরাহ করার সংমিশ্রণটি বলব।

single_templateটেমপ্লেটটি স্যুইচ আউট করতে আপনি ফিল্টারটি ব্যবহার করতে পারেন । আপনার কলব্যাকে দেখুন, থিমটি পোস্টের ধরণের জন্য কোনও টেম্পলেট সরবরাহ করেছিল কিনা, যদি তা করে থাকে তবে কিছুই করবেন না।

<?php
add_filter('single_template', 'wpse96660_single_template');
function wpse96660_single_template($template)
{
    if ('your_post_type' == get_post_type(get_queried_object_id()) && !$template) {
        // if you're here, you're on a singlar page for your costum post 
        // type and WP did NOT locate a template, use your own.
        $template = dirname(__FILE__) . '/path/to/fallback/template.php';
    }
    return $template;
}

আমি এই পদ্ধতিটি সবচেয়ে পছন্দ করি। "টেমপ্লেট ট্যাগ" একটি শব্দ সেট প্রদানের সাথে এটিকে একত্রিত (যেমন। the_content, the_title) যে সমর্থন যাই হোক না কেন কাস্টম ডেটা রয়েছে যা আপনার পোস্ট ধরনের সঙ্গে বরাবর যায় এবং আপনি কিছু শব্দ অক্ষমতা সঙ্গে বরাবর শেষ ব্যবহারকারীর স্বনির্ধারণ ক্ষমতার অনেক দিন দাওনা। বিবিপ্রেস এই ধরণের জিনিসটি সত্যিই ভালভাবে সম্পাদন করে: এটিতে যদি ব্যবহারকারী টেম্পলেটগুলি সন্ধান করে এবং প্রচুর টেম্পলেট ট্যাগ সরবরাহ করে তবে তা অন্তর্ভুক্ত করে।

বিকল্পভাবে, আপনি the_contentফিল্টার সহ একটি কলব্যাক ব্যবহার করতে পারেন , এবং কেবল সামগ্রীতে স্টাফ পরিবর্তন করতে পারেন।

<?php
add_filter('the_content', 'wpse96660_the_content');

function wpse96660_the_content($content)
{
    if (is_singular('your_post_type') && in_the_loop()) {
        // change stuff
        $content .= '<p>here we are on my custom post type</p>';
    }

    return $content;
}

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

3

template_includeঅনুরোধটি যদি আপনার পোস্টের ধরণের জন্য থাকে তবে আপনি আপনার প্লাগইন ফাইলটিতে প্রবেশ করতে এবং ফিরতে পারবেন:

add_filter( 'template_include', 'insert_my_template' );

function insert_my_template( $template )
{
    if ( 'my_post_type' === get_post_type() )
        return dirname( __FILE__ ) . '/template.php';

    return $template;
}

তবে এটি চেহারাটিকে মারাত্মকভাবে পরিবর্তন করবে। এখনও কোন পরিষ্কার সমাধান নেই।


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