ফোল্ডারগুলির সাথে get_template_part () ব্যবহার করার কোনও উপায় আছে কি?


26

আমি ভাবছি ফোল্ডারগুলির সাথে get_template_part () ব্যবহার করার কোনও উপায় আছে কিনা? আমার মূল ফোল্ডারে এখন প্রচুর ফাইল রয়েছে কারণ আমি প্রতিটি পুনরায় ব্যবহারযোগ্য উপাদান একটি পৃথক ফাইলে রেখেছি। আমি সেগুলি তখন ফোল্ডারে রাখতে চাই।

কোডেক্সে সে সম্পর্কে কোনও তথ্য নেই: http://codex.wordpress.org/Function_References/get_template_part

উত্তর:


40

আসলে আপনি যা করতে পারেন, আমি নামক আমার থিম ডিরেক্টরির মধ্যে একটি ফোল্ডার আছে /partials/যে ফোল্ডারের আমি যেমন ফাইল আছে মধ্যে latest-articles.php, latest-news.phpএবং latest-statements.phpআমি ব্যবহার করে এই ফাইল লোড get_template_part()মত:

get_template_part('partials/latest', 'news');

get_template_part('partials/latest', 'articles');

get_template_part('partials/latest', 'statements');

শুধু .phpফাইলের নামটি বাদ দিতে ভুলবেন না ।


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

1
ভাগ্যক্রমে কোডেক্স সম্পাদনা করা সম্ভব যাতে পরবর্তী ব্যক্তির একই সমস্যা না ঘটে। :-)
ডাল্টন

@ সেবাস্তেয়েন আপনি আসলে প্রাক্তন করতে পারেন: <?php get_template_part('partials/file'); ?>
হান্টসমোরস

5

আমার ভয় হচ্ছে না. কোডেক্সে যদি আপনি জানতে চান এমন কিছু না হয় তবে উত্সটির লিঙ্কটি অনুসরণ করার চেষ্টা করুন এবং কোডটিতে নিজেকে দেখুন এবং এটি পরিচালনা করার চেষ্টা করুন।

আমি একটি চেহারা ছিল এবং get_template_part ফাংশন নীচে হিসাবে সংজ্ঞায়িত করা হয়েছে:

function get_template_part( $slug, $name = null ) {
    do_action( "get_template_part_{$slug}", $slug, $name );

    $templates = array();
    if ( isset($name) )
        $templates[] = "{$slug}-{$name}.php";

    $templates[] = "{$slug}.php";

    locate_template($templates, true, false);
}

এ থেকে, আপনি পড়তে পারেন, get_template_part ফাংশন স্রেফ একটি উদ্দেশ্যে পিএইচপি ফাইলের নাম তৈরি করে এবং ফাংশন লন্ডন_টেমপ্লেট কল করে। এটি দরকারী নয়, সুতরাং আমি আমার কাছে ডিটেক্ট_টেমপ্লেট ফাংশনটিও দেখেছি:

function locate_template($template_names, $load = false, $require_once = true ) {
    $located = '';
    foreach ( (array) $template_names as $template_name ) {
        if ( !$template_name )
            continue;
        if ( file_exists(STYLESHEETPATH . '/' . $template_name)) {
            $located = STYLESHEETPATH . '/' . $template_name;
            break;
        } else if ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
            $located = TEMPLATEPATH . '/' . $template_name;
            break;
        }
    }

    if ( $load && '' != $located )
        load_template( $located, $require_once );

    return $located;
}

Get_template_part থেকে কল করা পিএইচপি ফাইলের জন্য টেম্পলেট অনুসন্ধানগুলি পান। তবে আপনি সরাসরি আপনার কোড থেকে অবস্থান_পৃষ্ঠা কল করতে পারেন । এবং এটি দরকারী।

Get_template_part ('loop-sigle.php') ফাংশনের পরিবর্তে এই কোডটি ব্যবহার করে দেখুন (আপনার ফাইলটি আপনার থিমের ভিতরে মাইডির মধ্যে অবস্থিত):

locate_template( 'mydir/loop-single.php', true, true );

আকর্ষণীয় শর্টকাট, আমি আশ্চর্য হই যে লোডিং ক্রম বা ফাইল সামগ্রীতে এর কোনও নেতিবাচক পরিণতি আছে কিনা।
lowtechsun

2

ফাংশনের নোটগুলি get_template_part()বলে:

নোটস
- ব্যবহার: সন্ধান করুন_প্রেম ()
- ব্যবহার: কর_অ্যাকশন () কল 'get_template_part _ {$ স্লাগ}' ক্রিয়া।

উইচ আপনাকে ব্যবহার করতে দেয় locate_template(), উইচ বলেছেন:

টেম্প্লেটপথের আগে স্টাইলশীটপাথে অনুসন্ধান করে যাতে পিতামাতার থিম থেকে প্রাপ্ত থিমগুলি কেবল একটি ফাইলকে ওভারলোড করতে পারে over

আপনি TEMPLATEPATHযে সাব-ডাইরেক্টরিটি ব্যবহার করতে চান তা যদি আপনি সংজ্ঞায়িত করেন তবে get_template_part()আপনার সাব-ডিরেক্টরিতে ফাইলগুলি অনুসন্ধান করবে for

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