IT-Swarm.Net

কিভাবে সব উপ বিভাগ সঙ্গে একটি মেনু তৈরি করতে?

একটি বিভাগের সাথে একটি মেনু তৈরি করা কি সম্ভব যে প্রতিটি সময় আমি একটি সাব বিভাগ ছিল যা স্বয়ংক্রিয়ভাবে মেনুতে প্রদর্শিত হয়?

যতদূর আমি জানি, আমার যদি "ফল" বিভাগের সাথে একটি মেনু থাকে, এবং আমি "কলা" উপসাগরীয় তৈরি করি, আমাকে নিজে এটি যুক্ত করতে হবে।.

6
nsn

এটি আপনি কী ধরনের মেনু সম্পর্কে কথা বলছেন তার উপর নির্ভর করে:

1)

আপনি যদি "কাস্টম মেনু" সম্পর্কে কথা বলছেন (ডিজাইনের অধীনে ব্যাকএন্ডে পাওয়া যায় -> মেনু) আপনি নীচের কাজটি করতে পারেন:

  • অ্যাকশন হুক দিয়ে একটি নতুন ফাংশন তৈরি করুন add_category

  • এই ফাংশনের ভিতরে, আপনি মেনু আইটেমের টাইপটি টাইপ করার একটি নতুন পোস্ট তৈরি করতে পারেন, যা আপনার মেনুতে সঠিকভাবে যোগ করা হয়

  • যখনই একটি নতুন বিভাগ প্রকাশিত হয় মেনু আইটেম এখন যোগ করা হয়

  • আপনার মেনু আপ টু ডেট রাখা, আপনি মুছে ফেলার বিভাগে হুক করা উচিত

2)

আপনি একটি ওয়ার্ডপ্রেস মেনু ছাড়া অনেক সহজ করতে পারে:

  • আপনার বিভাগগুলি তালিকাভুক্ত করার জন্য একটি ফাংশন লিখুন (বা পূর্বনির্ধারিত wp_list_categories ফাংশনটি ব্যবহার করুন)
  • এই যথেষ্ট না হলে একটি কাস্টমাইজড এক লিখুন (হতে পারে
    recursivley) ডাটাবেস থেকে আপনার বিভাগ পড়তে

কোড 1 বিকল্প জন্য আপনি যদিও ওয়ার্ডপ্রেস সম্পর্কে কিছু জ্ঞান প্রয়োজন।.

3
Blackbam

আমি wp_list_categories ব্যবহার করে পছন্দ করি। এখানে আমার কোডটি আমি আমার শেষ প্রকল্পে ব্যবহার করেছি:

<?php wp_list_categories('orderby=ID&exclude=3,10,1,16,38&title_li=<span class="sidebar_heading d_shadow">' . __('Categories') . '</span>'); ?>

আপনি আপনার সমস্ত বিভাগ এবং উপ-বিভাগের একটি তালিকা পাবেন।.

2
Paulius Jakštas

অনেক গবেষণা পরে আমি একটি বিশ্বাসযোগ্য দরকারী সমাধান খুঁজে পাওয়া যায় নি, এই ক্লাস ভাল কাজ করে:

class EntexAutoSubmenu {

    /**
     * Constructor
     */
    function __construct(){
        add_action('created_category', array($this, 'on_publish_category'));
    }

    /**
     * When publishing a new child category, add it to the appropriate custom menu.
     */
    function on_publish_category($cat_id){

        // Theme supports custom menus?
        if (!current_theme_supports('menus')) return;

        // Published taxonomy has parent?
        $cat = get_category($cat_id);
        if (!$cat->category_parent) return;

        $all_menus = get_terms('nav_menu', array('hide_empty' => true));

        // Loop through the menus to find page parent
        foreach ($all_menus as $menu) {

            $menu_parent = NULL;
            $menu_items = wp_get_nav_menu_items($menu->term_id, array('post_status' => 'publish,draft'));

            if (!is_array($menu_items)) continue;

            foreach ($menu_items as $menu_item){
                // Item already in menu?
                if ($menu_item->object_id == $cat_id) continue 2;
                if ($menu_item->object_id == $cat->category_parent) $menu_parent = $menu_item;
            }

            // Add new item
            if ($menu_parent) {
                wp_update_nav_menu_item($menu->term_id, 0, array(
                    'menu-item-object-id' => $cat_id,
                    'menu-item-object' => $cat->taxonomy,
                    'menu-item-parent-id' => $menu_parent->ID,
                    'menu-item-type' => 'taxonomy',
                    'menu-item-status' => 'publish'
                ));
            }
        }
    }
}

$auto_submenu = new EntexAutoSubmenu();
1
Jonas Lundman

আরেকটি বিকল্প ব্যবহার করা হবে তালিকা কাস্টম টক্সনমোজি উইজেট , এটি আপনার ব্যবহারের ক্ষেত্রে কাজ করতে পারে (যদি আপনি WP nav_menu ব্যবহার করার পরিকল্পনা করেন না)।.

1
David Senkus

আমি আমার ক্লায়েন্ট এক জন্য আমার নিজের কোডেড

<div class="menu">
  <ul id="MenuBar1" class="MenuBarHorizontal">
    <li><a <?PHP if( count($_GET) == 0 ){ echo 'class="-current"';} ?> href="<?php echo esc_url( home_url( '/' ) ); ?>">home</a></li>
    <?php
        $category_ids = get_all_category_ids();
        sort($category_ids);
        foreach($category_ids as $cat_id) {
            $cat_name = get_cat_name($cat_id);

            echo '<li><a href="' . get_category_link( $cat_id ) . '">' . $cat_name . '</a>';            
            $args = array( 'numberposts' => -1, 'offset'=> 0, 'cat' => $cat_id, 'orderby' => 'ID', 'order' => 'ASCE' );     

            echo '<ul>';

            /* The 2nd Query (without global var) */
            $query2 = new WP_Query( $args );
            // The 2nd Loop
            while( $query2->have_posts() ):
                $query2->next_post();
                echo '<li><a href="' . get_permalink( $query2->post->ID ) . '">' . get_the_title( $query2->post->ID ) . '</a></li>';
            endwhile;

            // Restore original Query & Post Data
            wp_reset_query();
            wp_reset_postdata();
            echo '</ul>';
        echo '</li>';
        }
    ?>
  </ul>
</div>
1
0_0

এই সমস্যার সমাধান করার জন্য আমি একটি প্লাগইন তৈরি করার চেষ্টা করেছি যা মেনুতে এটির মূল বিভাগের অধীনে প্রকাশ বিভাগের জন্য স্বয়ংক্রিয়ভাবে মেনু আইটেম তৈরি করে।.

প্লাগইন জন্য আইডিয়া:

1.in কোড, আমি ব্যবহার করেছি "তৈরি_ $ শ্রেণীবিভাগ" অ্যাকশন হুক।.

2. সমস্ত মেনু আইটেমটি নির্বাচন করুন ( ব্যবহার করে wp_get_nav_menu_item গুলি)

3. এবং প্রকাশের বিভাগের অভিভাবক মেনু-আইটেমের মেনু-আইটেমের সাথে তার মেনুর আইটেমের সাব মেনু হিসাবে তৈরি করা অবস্থায় শর্তটি রাখে। ( ব্যবহার করে wp_update_nav_menu_item )

<?php
/*
Plugin Name: Auto Category Submenu
Plugin URI: 
Description: Create menu item when category publish/create if it's parent category in menu item.
Version: 0.1
Author: Mayank Gupta/Ravinder Kumar
Author URI: 
License: GPL2
*/

class AutoSubmenu {

    /**
     * Constructor
     */
    function __construct() {
        add_action( 'created_category', array( &$this, 'on_publish_cat' ) );
    }

    /**
     * When publishing a new child page, add it to the appropriate custom menu.
     */
    function on_publish_cat( $cat_id ) {
        $cat = get_category( $cat_id );

        //menu id for you menus in which your sub-category's parent category as menu item 
        $menu_ids = array(101,100);

        //retrieve all meu items from menu
        foreach($menu_ids as $menu_id){
            $menu_items[] = wp_get_nav_menu_items( $menu_id, array('post_status' => 'publish','post_type' => 'nav_menu_item','output' => ARRAY_A, ) );
        }
        foreach($menu_items as $menu_item){
            $counter = 0 ;
            echo'<!--';
            print_r($menu_item);
            echo'-->';
            foreach($menu_item as $menu_term){
                $menu_terms_id[] = $menu_term->object_id; //all menu items id
            }
        }
        //print_r($menu_terms_id); //test for items in menu
        foreach( $menu_terms_id as $menu_term ){
            if( $cat->category_parent == $menu_term){
                wp_update_nav_menu_item( $cat_id, 0, array(
                'menu-item-object-id' => $cat_id,
                'menu-item-object' => $cat->taxonomy,
                'menu-item-parent-id' => $menu_term,
                'menu-item-type' => 'category',
                'menu-item-status' => 'publish'
            ) );
            }else{
                return;
            }
        }
    }

}
$auto_submenu = new AutoSubmenu();

দ্রষ্টব্য: প্লাগইন প্রদানের ত্রুটি (শিরোনাম ইতোমধ্যে পাঠানো হয়েছে) এবং মেনু আইটেমটি প্রকাশিত হওয়ার পরে তৈরি করা হয়নি। সমস্যাটির জন্য এটি অন্য একটি বিষয় হতে পারে তবে আমি এখানে এটি রাখি কারণ এটি একটি সমাধান হতে পারে যদি কেউ আমাকে ভুল করে বলে। দুঃখিত, আমি এখানে রেখে দিয়ে কিছু ভুল করছি

1
Ravinder Kumar

আমি আমার প্রোজেক্টের মেনু হিসাবে সমস্ত বিভাগ এবং বিভাগের উপ বিভাগ দেখানোর জন্য ব্যবহার করছি।.

$all_categories = get_categories( $args );
echo "<div class='container'>";
 echo "<div class='productsubmenu'>";
echo "<ul>";

foreach ($all_categories as $cat)
{           

if($cat->category_parent == 0)
 {
  $category_id = $cat->term_id;
   $thumbnail_id = get_woocommerce_term_meta( $cat->term_id,    'thumbnail_id', true );
$image = wp_get_attachment_url( $thumbnail_id );

echo '<li class="parent '.$my.' "><a href="'.get_term_link( $cat ) . '">'.$cat->name.'</a>';


$args2 = array(
'taxonomy' => $taxonomy,
'child_of' => 0,
'parent' => $category_id,
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title,
'hide_empty' => $empty

);
   $args = array(
   'hierarchical' => 1,
   'show_option_none' => '',
   'hide_empty' => 0,
   'parent' => $parent_cat_ID,
   'taxonomy' => 'product_cat'
);
 $subcats = get_categories($args2);
 echo '<ul class="wooc_sclist">';

  foreach ($subcats as $sc) { 

        }

    $link = get_term_link( $sc->slug, $sc->taxonomy );
    echo '<li class="'.$my.'" ><a href="'. $link .'">'.$sc->name.'</a></li>';
  }
echo '</ul>';
echo "</li>";
}
else
{

 }
 }

    echo "</ul>";
   echo "</div>";
   echo "</div>";
0
vivek manavadariya