ওয়ার্ডপ্রেস in.০ এ নতুন মেনু কার্যকারিতা সহ wp_list_pages () ব্যবহার করে শিশু পৃষ্ঠাগুলি প্রদর্শন করে এমন একটি মেনু তৈরি করুন?


10

পূর্বে, আমি যুক্তি ব্যবহার করে যেমন নির্বাচিত প্যারেন্ট পৃষ্ঠাগুলির জন্য বেছে বেছে বাচ্চাদের পৃষ্ঠাগুলি নির্বাচন করতে সক্ষম হয়েছি:

if(  $post->post_parent ) {
  $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
} else {
  $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
}

if ($children) { ?>
   <ul id="subnav">
     <?php echo $children; ?>
   </ul>
<?php 
} else {
}

নতুন নিবন্ধ_ন_মেনাস () / ডাব্লুপি_নাভ_মেনু () কার্যকারিতা ব্যবহার করে এটি করার কোনও নেটিভ উপায় বলে মনে হচ্ছে না। যে কেউ এই মুহুর্তে আমি কীভাবে এটি প্যাচ করতে পারি জানি?

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

চাইল্ড মেনুর স্ক্রিনশটটি ড্রপ ডাউন করুন


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

আমি প্রশ্নটি পুরোপুরি বুঝতে পারি না। তুমি অর্জন করার জন্য কি চেষ্টা করতেছ? আমি কোডটি দেখছি তবে প্রসঙ্গটি পাই না। চান এমন একটি সাইট পেয়েছেন? একটি স্ক্রিনশট?
মাইকচিনকেলে

তিনি নতুন এনএভি মেনু এপিআই-তে শর্তসাপেক্ষে শীর্ষ স্তরের মেনু আইটেমগুলির শিশু আইটেমগুলি যুক্ত করতে চান (অর্থাত্ যদি গাছের কাঠামোটি সক্রিয় থাকে তবেই)।
জন পি ব্লচ

@ জন পি। ব্লচ - "গাছের কাঠামো সক্রিয় থাকলেই" এর অর্থ কী? আমরা কি কেবল পেজই কথা বলছি? পোস্ট, বিভাগ, ট্যাগ, কাস্টম পোস্ট, ইত্যাদি সম্পর্কে কী? তিনি কি ক্লায়েন্টে jQuery এর মাধ্যমে বা সার্ভারে এটি করতে চান? আমার ধারণা আমি বরং অনুমান করব না এবং আমি আসল ব্যবহারের ক্ষেত্রে আরও শুনতে চাই।
মাইকচিন্কেল 21 '45

@ মাইকচিনকেল এই বিশেষ ক্ষেত্রে, আমি মনে করি আমরা কেবল পৃষ্ঠাগুলি নিয়ে কথা বলব, তবে তা যাই হোক না কেন; সমাধান এখনও একই হবে। আমি মনে করি জামুস এটি সার্ভার-সাইড সম্পন্ন করতে চায়।
জন পি ব্লচ

উত্তর:


9

আমি পৃষ্ঠা সাব নেভিগেশন (আমি জানি চতুর) নামে একটি উইজেট তৈরি করেছি যা আমার পক্ষে কাজ করছে।

আপনি যদি এটি ইনস্টল করেন তবে আপনি কেবলমাত্র আপনার উইজেট অঞ্চলগুলিতে উইজেটটি টেনে আনতে পারেন এবং বিএএম এটি কাজ করে।

<?php
/*
Plugin Name: Page Sub Navigation
Plugin URI: http://codegavin.com/wordpress/sub-nav
Description: Displays a list of child pages for the current page
Author: Jesse Gavin
Version: 1
Author URI: http://codegavin.com
*/

function createPageSubMenu()
{
  if (is_page()) {
    global $wp_query;

    if( empty($wp_query->post->post_parent) ) {
      $parent = $wp_query->post->ID;
    } else {
      $parent = $wp_query->post->post_parent;
    }

    $title = get_the_title($parent);

    if(wp_list_pages("title_li=&child_of=$parent&echo=0" )) {
      echo "<div id='submenu'>";
      echo "<h3><span>$title</span></h3>";
      echo "<ul>";
      wp_list_pages("title_li=&child_of=$parent&echo=1" );
      echo "</ul>";
      echo "</div>";
    }
  }
}


function widget_pageSubNav($args) {
  extract($args);
  echo $before_widget;
  createPageSubMenu();
  echo $after_widget;
}

function pageSubMenu_init()
{
  wp_register_sidebar_widget("cg-sidebar-widget", __('Page Sub Navigation'), 'widget_pageSubNav');
}
add_action("plugins_loaded", "pageSubMenu_init");
?>

অথবা আপনি যদি কেবল সরস অংশগুলি চান ...

if (is_page()) {
  global $wp_query;

  if( empty($wp_query->post->post_parent) ) {
    $parent = $wp_query->post->ID;
  } else {
    $parent = $wp_query->post->post_parent;
  }

  if(wp_list_pages("title_li=&child_of=$parent&echo=0" )) {
    wp_list_pages("title_li=&child_of=$parent&echo=1" );
  }
}

হালনাগাদ

আমি অন্য একটি প্লাগইন পেয়েছি যা মূলত একই জিনিসটি করে (এবং সম্ভবত এটি আরও ভাল করে, আমি জানি না)। http://wordpress.org/extend/plugins/subpages-widget/


এটি তাই, আমার যা প্রয়োজন তার খুব কাছাকাছি। একমাত্র সমস্যাটি হ'ল যখন বডিপ্রেস সক্রিয় থাকে তখন এটি খারাপ ব্যবহার করে।
জাউমুস

2

আপনি এটি করতে একটি সিএসএস হ্যাক করতে পারেন (2 উপায় যে আমি চেষ্টা করব)

1 হ'ল সিএসএসকে পরাশীকরণে আইটেমগুলি প্রদর্শন করতে আমি এটি ভাবতে সবচেয়ে সহজ উপায়।

.current-menu-ancestor ul {display:inline;}
.current-menu-parent ul (display:inline;}

2 ধরে নিচ্ছেন যে আপনার থিমটি বডি ক্লাসগুলিকে সমর্থন করে আপনি প্রতিটি "সাব এনএভি" এর জন্য একটি এনএভি মেনু তৈরি করতে পারেন এবং এটিকে মূল নেভিগেশনের নীচে প্রদর্শন করার জন্য সেট করেছেন - তারপরে আপনার স্টাইলশিটটি সম্পাদনা করুন কেবল সুবর্ণ ডিভের মতো কিছু ব্যবহার করার জন্য:

.child-menu-about, .child-menu-leadership {display:none;}
body.page-id-YOUR_ABOUT_PAGE_ID .child-menu-about {display:inline;}
body.category-YOUR-CATEGORY-SLUG  .child-menu-leadership {display:inline;}

0

এখানে চিত্র বর্ণনা লিখুন 1 এটি পিএইচপি প্রদর্শন।

এখানে চিত্র বর্ণনা লিখুন 2 এটি সিএসএস প্রদর্শন।


কোডের স্ক্রিনশট হিসাবে উত্তর পোস্ট করা সবচেয়ে খারাপতম উপায় - দয়া করে আপনার উত্তরটি পুনরায় দিন। ব্যাখ্যা করার কয়েকটি শব্দও আঘাত করবে না।
পিকার্ড

0
<nav class="site-nav children-link">
                <?php       

                    if(  $post->post_parent ) 
                    {
                      $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
                    } 
                    else 
                    {
                      $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
                    }

                    if ($children) { ?>
                       <ul>

                            <?php echo $children; ?>

                       </ul>

                    <?php 
                        } else {
                        }
                ?>
        </nav>

সিএসএস

/*children-links links*/

.children-link 
{       

        background-color: #1a5957;
        color:#FFF;
        font-size: 100%;

}

.children-link li
{
    margin: 10px;   


}

.children-link ul li a:link,
.children-link ul li a:visited 
{
        padding: 15px 17px;
        text-decoration: none;
        border: 1px solid #1a5957;

}
.children-link ul li a:hover 
{
        background-color: #1a5957;
        color:#FFF;
        font-weight: bold;

}
.children-link .current_page_item a:link,
.children-link .current_page_item a:visited
{

    background-color: #1a5957;
    color: #FFF;
    cursor: default;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.