যদি পিতামাতার পৃষ্ঠাগুলি হয়, যদি তার সন্তান থাকে, যদি নাতি-নাতনি থাকে তার জন্য একটি চেক


10

আমার একটি ডিফল্ট পৃষ্ঠার টেমপ্লেট রয়েছে যা আমি দুটি দৃশ্যের জন্য ব্যবহার করতে চাই। আমি আমার ক্লায়েন্টের সরলতার জন্য শুধুমাত্র একটি পৃষ্ঠার টেম্পলেট ব্যবহার করতে পছন্দ করব।

আমি যা অর্জন করতে চাইছি তা এখানে:

if parent_page OR if child-page without children {
  display full-width-layout
}
if child page with children or if grandchild page {
  display sidebar-menu-layout
}

এটা কি সম্ভব?

আমি এ পর্যন্ত চেষ্টা করেছি:

if( is_page() && $post->post_parent > 0 ) {
  //display sidebar-menu-layout
} else {
  //display full-width-layout
}

এটি শীর্ষ স্তরের পৃষ্ঠাগুলি পর্যন্ত কাজ করে, এটি পূর্ণ-প্রস্থ-লেআউট প্রদর্শন করে। তবে, সাইডবার-মেনু-লেআউটটি বাচ্চাদের সাথে চাইল্ড-পৃষ্ঠাগুলিতে এবং কেবল নাতি-পাতায় প্রদর্শিত হবে তা নিশ্চিত করার জন্য আমি কী করতে পারি? এবং কোনও শিশু নেই এমন চাইল্ড-পৃষ্ঠাগুলির জন্য, পূর্ণ-প্রস্থ-বিন্যাস প্রদর্শন করতে।

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

উত্তর:


7

ব্র্যাভোকেইল প্রদত্ত সমাধানটি পড়ার আগে শেষ পর্যন্ত আমার পরীক্ষা এবং ত্রুটির মধ্য দিয়ে একটি সমাধান নিয়ে এসেছিল যা আমার পক্ষে কাজ করেছিল। আমি নিশ্চিত না যে দুজনের মধ্যে সবচেয়ে ভাল বা সবচেয়ে সঠিক, আমি কেবল জানি যে আমার যে সমস্যার জন্য ছিল তা আমার জন্য কাজ করেছিল।

আমি পূর্ণ কোড প্রস্থের লেআউট বা সাইডবার-মেনু বিন্যাস প্রদর্শন করতে এই কোডটি ব্যবহার করেছি:

if( is_page() && $post->post_parent > 0 ) { 
  // post has parents

  $children = get_pages('child_of='.$post->ID);
  if( count( $children ) != 0 ) {
    // display sidebar-menu layout
  }

  $parent = get_post_ancestors($post->ID);
  if( count( $children ) <= 0  && empty($parent[1]) ) {
    // display full-width layout
  } elseif ( count( $children ) <= 0  && !empty($parent[1]) )  {
    // display sidebar-menu layout
  }

} else {
  // post has no parents
  // display full-width layout
}

4
Level-0
--Level-1
----Level-2
------Level-3
----Levelanother-2
--Levelanother-1

পৃষ্ঠাটি শীর্ষ স্তরের পৃষ্ঠা কিনা তা পরীক্ষা করুন (এটির শিশু থাকতে পারে বা নাও থাকতে পারে)?

$post->$post_parent == 0বা খালি get_post_ancestors( $post )কেবল মাত্র -0 পৃষ্ঠাগুলি দেয়।

একটি শিশু পৃষ্ঠা এবং একটি স্তর -1 পৃষ্ঠা বা কেবল লেভেলানোথর -1?

$post->$post_parent > 0বা খালি নয় get_post_ancestors( $post )এবং খালি আছেget_post_ancestors( $post->post_parent )

স্তর -১ পৃষ্ঠাটি কি তবে লেভেলানোথর -১ পৃষ্ঠার মতো বাচ্চারা নেই?

$post->$post_parent > 0বা খালি নয় get_post_ancestors( $post )এবং খালি get_post_ancestors( $post->post_parent ) এবং count(get_children( $post ->ID, 'ARRAY_A' )) == 0..

আমি এটি এখনও পরীক্ষা করে দেখিনি ... তবে এটি ঠিকঠাক কাজ করা উচিত। আপনি get_page_children () এবং get_posts () এর সাথেও খেলতে পারেন


ধন্যবাদ ব্র্যাভোকেয়েল এই সমাধানটি আমার পক্ষে কাজ করেছিল। অনেক পরীক্ষার পরে এবং ত্রুটির পরে (মূলত ত্রুটি) আমি আপনার উত্তরটি পড়ার আগে আজকের প্রথমদিকে আমার নিজের একটি সমাধান নিয়ে এসেছি। আমি নীচে পোস্ট করব।
laura.f

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