আমি কি একটি কাস্টম পোস্ট ধরণের কোনও টেমপ্লেট বরাদ্দ করতে পারি?


35

আমি কি একটি কাস্টম পোস্ট ধরণের কোনও টেম্পলেট ফাইল বরাদ্দ করতে পারি?

আমি একটি কাস্টম পোস্ট টাইপ নামে তৈরি করেছি itemsএবং আমি পৃষ্ঠাগুলিতে আপনার মতো আইটেমগুলিতে টেম্পলেটগুলি অর্পণ করতে চাই।


wpbeginner.com/wp-themes/… (এটি পোস্টের জন্য তবে আপনি এটি সিপিটি-র জন্য পরিবর্তন করতে পারেন) নাথানরাইস.net / ব্লগ / ওয়ার্ডপ্রেস -সেইসেল- পোষ্ট- টেম্পলেটগুলি (এটি পোস্টের জন্য তবে আপনি এটি সিপিটি-র জন্য পরিবর্তন করতে পারেন) এটি একটি আসলে একটি প্লাগইন জন্য ভাল ধারণা।
উইক

উত্তর:


50

থেকে ওয়ার্ডপ্রেস সংস্করণ 4.7 আপনি যা করতে পারেন পৃষ্ঠার পাশাপাশি অন্যান্য পোস্ট ধরনের এখন বরাদ্দ কাস্টম পৃষ্ঠা টেমপ্লেট।

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

<?php
/*
Template Name: Full-width page layout
Template Post Type: post, page, product
*/

আপনি নিম্নলিখিত পৃষ্ঠাগুলিতে এটি সম্পর্কে আরও তথ্য পেতে পারেন।

https://wptavern.com/wordpress-4-7-brings-custom-page-template-functionality-to-all-post-tyype https://make.wordpress.org/core/2016/11/03/post টাইপ-টেমপ্লেট-ইন-4-7 /


21

আপনি ফাইল তৈরি করে কাস্টম পোস্ট ধরণের জন্য টেম্পলেট তৈরি করতে পারেন, উদাহরণস্বরূপ:

single-mycustomposttype.php

কোডেক্সে টেম্পলেট হায়ারার্কি দেখুন ।

PS : এটি ইতিমধ্যে উত্তর দেওয়া হয়েছে।


2
এর জন্য ধন্যবাদ, তবে আমি যা জানতে চাই তা হ'ল কাস্টম পোস্টের ধরণগুলিতে কাস্টম টেম্পলেট যুক্ত করা সম্ভব কিনা। সুতরাং উদাহরণস্বরূপ আমি দুটি টেম্পলেট তৈরি করতে এবং প্রতিটি টেমপ্লেটকে এর সম্পর্কিত পোস্টে বরাদ্দ করতে পারি? এটি কেবলমাত্র কোনও টেম্পলেট ফাইলটিকে নির্দিষ্ট পোস্টের ধরণের হ্যান্ডল করার জন্য অনুমতি দেয় যতক্ষণ না আমি এটি বুঝতে পারি।
ওডিস 3us

দেখুন, যদি আপনার একক পোস্টগুলির জন্য বিভিন্ন টেম্পলেটগুলির প্রয়োজন হয় তবে আপনি প্রতিটি প্রয়োজনীয় টেম্পলেট অনুযায়ী বিভিন্ন কাস্টম পোস্ট প্রকার তৈরি করতে চাইতে পারেন। আমি অনুমান করি যে আপনার কতগুলি বিভিন্ন টেম্পলেট প্রয়োজন need প্রতিটি পোস্টে আলাদা হওয়া দরকার যে টেম্পলেটগুলিতে আপনি কী করতে যাচ্ছেন?
মাইকে

এই উত্তরটি এখন পুরানো। বিনোদ ডালভীর উত্তর দেখুন।
সাইমন পূর্ব

8

আমার জন্য কী কাজ করে তা এখানে:

add_filter('single_template', function($original){
  global $post;
  $post_name = $post->post_name;
  $post_type = $post->post_type;
  $base_name = 'single-' . $post_type . '-' . $post_name . '.php';
  $template = locate_template($base_name);
  if ($template && ! empty($template)) return $template;
  return $original;
});

এইভাবে কাস্টম পোস্ট টাইপের একটি পোস্ট দেওয়া হয়েছে foobarএবং hello-worldউপরের কোডের একটি স্লাগ single-foobar-hello-world.phpটেমপ্লেটটি লোড করবে , যদি এটি বিদ্যমান থাকে।


4

গুগলের মাধ্যমে যারা এই থ্রেডে পৌঁছেছেন তাদের জন্য, ডাব্লুপি 4.7 সমস্ত পোস্ট ধরণের টেমপ্লেট চালু করেছিল। পুরো ওয়াকথ্রুয়ের জন্য ডাব্লুপি কোর করুন See আপনি আর আপনার সমস্ত সিপিটির জন্য একটি টেম্পলেটটিতে সীমাবদ্ধ নন, আপনি পৃষ্ঠাগুলির মতো পোস্টের মাধ্যমেও পৃথক টেম্পলেট পোস্ট পোস্ট করতে পারেন।


2

এটি সামান্য পুরানো তবে আপনি এটি ব্যবহার করে দেখতে পারেন:

কাস্টম পোস্ট ধরণের জন্য একটি টেম্পলেট তৈরি করুন:

single-*custom-post-type-slug*.php

ফাইলটির স্লাগটি পরীক্ষা করা উচিত এবং কোনও ফাইল উপস্থিত থাকলে তা যাচাই করা উচিত, যদি না থাকে তবে ডিফল্ট টেম্পলেট ফাইলের ফ্যালব্যাক:

<?php 
    $slug = get_post_field( 'post_name', get_post() );
    $slug = ( locate_template( 'templates/*custom-post-type-slug*/' . $slug . '.php' ) ) ? $slug : 'default';

    get_template_part( 'templates/*custom-post-type-slug*/' . $slug  );
?>

আপনার কাস্টম পোস্টের প্রকৃত স্লাগের সাথে কাস্টম-পোস্ট-টাইপ-স্লাগের সমস্ত উদাহরণ প্রতিস্থাপন করুন ।

আমি ব্যবহারের স্বাচ্ছন্দ্য এবং সাংগঠনিক উদ্দেশ্যে এটি করি। থিমের মূল ফোল্ডারে থাকা সমস্ত ফাইলের চেয়ে এটি আমার কাছে পরিষ্কার মনে হয়।

উদাহরণস্বরূপ ফোল্ডার কাঠামো:

themeroot
| |single-cases.php
|-templates
| --cases
|   |default.php
|   |case-one.php
|   |case-two.php

1

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

<div class="container">

    <div class="row">

        <div class="col-md-9">
            <div class="panel panel-default text-center">
                <?php $loop = new WP_Query( array( 'post_type' => 'items', 'posts_per_page' => 5 ) ); ?>                        

                        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
                            <?php the_title();?>
                            <?php if(has_post_thumbnail() ) { the_post_thumbnail(); } ?>
                            <?php the_content();?>
                        <?php endwhile; ?>

                <?php wp_reset_query(); ?>                      
            </div>
        </div>

    </div>

</div>

1

এটি করা খুব সহজ।

আপনার থিমের মূল ডিরেক্টরিতে একটি নতুন পিএইচপি ফাইল তৈরি করুন এবং এটিকে শীর্ষে যুক্ত করুন:

<?php /*
 * Template Name: My custom view
 * Template Post Type: Post_typename   // here you need to add the name of your custom post type
 */ ?>

সম্পূর্ণ উদাহরণ নিম্নলিখিত হিসাবে হবে:

<?php /*
 * Template Name: My custom view
 * Template Post Type: Post_typename   // here you need to add the name of your custom post type
 */ ?>
<?php get_header();?>


<div class="container pt-5 pb-5">


    <?php if (has_post_thumbnail()):?>

      <img src="<?php the_post_thumbnail_url('largest');?>" class="img-fluid">

    <?php endif;?>




    <?php if (have_posts()) : while (have_posts()) : the_post();?>

        <?php the_content();?>

    <?php endwhile; endif;?>


</div>

<?php get_footer();?>

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