IT-Swarm.Net

টেমপ্লেট দ্বারা পৃষ্ঠা আইডি পান

একটি নির্দিষ্ট টেমপ্লেট সহ একটি পৃষ্ঠা আইডি পেতে পারলে আমি জানতে চাই। "Page-special.php" এ দেওয়া পৃষ্ঠাটির আইডি পেতে কি এটি সম্ভব?

16
user3800799

যখন একটি পৃষ্ঠা তৈরি করা হয়, তখন সেই পৃষ্ঠায় নির্ধারিত টেমপ্লেটটি কাস্টম ক্ষেত্রগুলির মতো কাস্টম পোস্ট মেটা হিসাবে সংরক্ষিত হয়। meta_key_wp_page_template এবং meta_value পৃষ্ঠা টেমপ্লেট হবে

আপনি নির্দিষ্ট পৃষ্ঠার get_pages থাকা সমস্ত পৃষ্ঠাগুলি পুনরুদ্ধার করতে meta_value ব্যবহার করতে পারেন

$pages = get_pages(array(
    'meta_key' => '_wp_page_template',
    'meta_value' => 'page-special.php'
));
foreach($pages as $page){
    echo $page->ID.'<br />';
}

23-07-2015 সম্পাদন করুন

যদি শুধুমাত্র পৃষ্ঠা আইডগুলির প্রয়োজন হয়, তবে আপনি get_posts ব্যবহার করেন এবং তারপরে pagepost_type এবং 'idsasfields` মান হিসাবে কেবল পাস করুন। এটি আরও দ্রুত, আরও বেশি অপ্টিমাইজ করা ক্যোয়ারী নিশ্চিত করবে কারণ আমরা শুধুমাত্র ডিবিতে পোস্ট আইডি কলামটি ফেরত দেব এবং তাদের সমস্ত প্রদত্ত পৃষ্ঠাগুলির জন্য নয়

( প্রয়োজন PHP 5.4 + )

$args = [
    'post_type' => 'page',
    'fields' => 'ids',
    'nopaging' => true,
    'meta_key' => '_wp_page_template',
    'meta_value' => 'page-special.php'
];
$pages = get_posts( $args );
foreach ( $pages as $page ) 
    echo $page . '</br>';
33
Pieter Goosen

দ্রুত, নির্ভরযোগ্য এবং সাশ্রয়ী মেঘ হোস্টিং

সাইন আপ করুন এবং 30 দিনের মধ্যে $50 বোনাস পান!

যদি আপনার পৃষ্ঠা টেমপ্লেটটি সাব-ফোল্ডার, থিম-ফোল্ডার/পৃষ্ঠা-টেমপ্লেট/পৃষ্ঠা-টেম্পলেট.ফপি-এর ভিতরে থাকে তবে আপনার নীচের প্রশ্নটি কাজ করবে:

$page_details = get_pages( array(
 'post_type' => 'page',
 'meta_key' => '_wp_page_template',
 'hierarchical' => 0,
 'meta_value' => 'page-templates/page-template.php'
));

উপরের কোডগুলি উপ-পৃষ্ঠাগুলিও প্রদর্শন করে।.

ধন্যবাদ

2
Sushil Adhikari

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

function get_post_id_by_template($template,$lang_slug = null){
  global $wpdb;
  $wh = ($lang_slug) ? " AND t.slug = %s" : "";

  $query = $wpdb->prepare(
    "SELECT DISTINCT p.ID
    FROM $wpdb->posts p
    INNER JOIN $wpdb->postmeta meta ON meta.post_id = p.ID
    INNER JOIN $wpdb->term_relationships tr ON meta.post_id = tr.object_id
    INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
    INNER JOIN $wpdb->terms t ON tt.term_id = t.term_id
    WHERE p.post_status = 'publish' AND meta.meta_key = %s AND meta.meta_value = %s" . $wh,
    '_wp_page_template',
    $template,
    $lang_slug
  );

  $ids = $wpdb->get_results($query);

  if($ids && isset($ids[0])){
    $p = $ids[0];
    return $p->ID;
  } else {
    return false;
  }
}// get_post_id_by_template
0
Luca Reghellin