Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.39 KB | None | 0 0
  1. <?php
  2. global $post;
  3. $category_id = get_post_meta($post->ID, 'dynamic-menu', true);
  4. $term = get_term_by('name', $category_id, 'category');
  5. if($term != false) {
  6.     $category_id = $term->term_id;
  7.     update_post_meta($post->ID, 'dynamic-menu', $category_id);
  8. }
  9.  
  10.  
  11. if(!empty($category_id) && $category_id != 0) {
  12.     //testing resets
  13.     delete_transient('dynamic-menu');
  14.    
  15.     $prebuilt_menu = get_transient('dynamic-menu', array());
  16.     if(!empty($prebuilt_menu[$category_id])) { echo $prebuilt_menu[$category_id]; }
  17.     else {
  18.         $cats = get_categories(array('child_of' => $category_id, 'order_by' => 'id', 'order' => 'asc'));
  19.         $exclude = array();
  20.         foreach($cats as $cat) { $exclude[] = $cat->term_id; }
  21.         ob_start(); ?>
  22.         <ul id='collapsible-menu'>
  23.         <?php $query = new WP_query(array('order' => 'desc', 'category__in' => array($category_id), 'orderby' => 'id', 'post_type' => array('post'), 'category__not_in' => $exclude )); ?>
  24.         <?php while($query->have_posts()) : $query->the_post(); ?>
  25.             <ul class="section">
  26.                 <li class="header"><a href="<?php the_permalink(); ?>"><?php echo theme_functions::menu_title($query->post->ID); ?></a></li>
  27.             </ul>
  28.         <?php endwhile; ?>
  29.         <?php foreach($cats as $cat):
  30.             $menu = get_term_by('name', $cat->name, 'nav_menu');
  31.             if(isset($menu->term_id)) :
  32.             $items = wp_get_nav_menu_items($menu->term_id); ?>
  33.             <ul class="section">
  34.                 <li class="header"><?php echo $cat->name; ?></li>
  35.                 <li class="children">
  36.                     <ul>
  37.                     <?php foreach((array)$items as $key => $menu_item) { echo "<li><a href='{$menu_item->url}'>{$menu_item->title}</a></li>"; } ?>
  38.                     </ul>
  39.                 </li>
  40.             </ul>
  41.             <?php
  42.             else:
  43.             $query = new WP_query(array(
  44.                 'category__in' => array($cat->term_id),
  45.                 'orderby' => 'id',
  46.                 'order' => 'desc',
  47.                 'post_type' => array('post'),
  48.                 'nopaging' => true));
  49.             ?>
  50.             <ul class="section">
  51.                 <li class="header"><?php echo $cat->name; ?></li>
  52.                 <li class="children">
  53.                     <ul>
  54.                     <?php while($query->have_posts()) : $query->the_post(); ?>
  55.                         <li><a href="<?php the_permalink(); ?>"><?php echo theme_functions::menu_title($query->post->ID); ?></a></li>
  56.                     <?php endwhile; ?>
  57.                     </ul>
  58.                 </li>
  59.             </ul>
  60.             <?php endif; ?>
  61.         <?php endforeach; ?>
  62.         </ul>
  63.         <?php
  64.         $menu = ob_get_contents();
  65.         ob_end_flush();
  66.         $prebuilt_menu[$category_id] = $menu;
  67.         set_transient('dynamic-menu', $prebuilt_menu, 60*60*12);
  68.     }
  69. }
  70. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement