customizing navmenu with categories in a specific order
-
I have customised my navmenu in the header.php to show the category list instead of page list (wp default) with the following code :
default:
<li <?php if ( is_home() ) { ?> class=”current_page_item” <?php } ?>>/”>Home
<?php
$pages = wp_list_pages(‘sort_column=menu_order&title_li=&echo=0’);
$pages = preg_replace(‘%]+)>%U’,’‘, $pages);
$pages = str_replace(‘‘,”, $pages);
echo $pages;
?>replaced with this :
<li <?php wp_list_categories(‘title_li=’); ?>
it worked well, but it’s put in an alphebatical ordrer.
I’d like to put my 5 categories in a specific order from left to right like :
cat 4, 18, 6, 5, 7i don’t know the php code to display it corrrectly:
show cat 4 – show cat 18 – show cat 6 – show cat 5 – show cat 7
can someone help me ?
i’m a noob
-
I have customised my navmenu in the header.php to show the category list instead of page list (wp default)
It’s not a WordPress default. It’s theme specific.
http://codex.wordpress.org/Template_Tags/wp_list_categories
Check theorderby
parameter. If that’s still not what you want, try using get_categories and sorting the resulting array before displaying it.thanks but like i say i’m a noob in php.
Do you mind writing the whole code down ? please ?If you want a particular order, you could build your own category list.
<?php $mycatids = array(1,57,85,86); echo "\n<ul>"; foreach($mycatids as $cats) { $wpcat = get_term( $cats , 'category' ); if(get_query_var('cat') == $wpcat->term_id) $current = ' current-cat'; else $current = ''; if($wpcat) { echo ' <li class="cat-item cat-item-'.$wpcat->term_id.$current.'"> <a href="'.get_category_link( $wpcat->term_id ).'"> '.$wpcat->name.' </a> </li>'; } } echo "\n</ul>\n"; ?>
Just make sure the IDs are valid and not placed in quotes, just literal numeric values in the array..
The list will generate in the order of the IDs in the array.
I’d only suggest using this if you can’t get the ordering you want with the orderby parameter in wp_list_categories though… (simply an alternative if you can’t get what want from it).
Hi ngweepin,
I think esmi’s right. Use get_categories with the orderby parameter set to ‘name’, else you are going to have to use get_categories and sort the results before displaying them.
I’m about to leave town for a few days, so right now, no, I can’t write the code out.
hi t31os_,
hi esmi
i’d appreciated it if someone can show me the code.
thankshttp://wordpress.org/extend/plugins/my-category-order/ if you are not afraid of plugins (allthough you allways run the chance that they stop working after an upgrade of WP. That’s why you need a test site)
the widget for category order doesn’t work for me in this case because of my new navmenu which is made of categories… i want the specific order in the navbar not on the side bar.
thanks anyway.
Can anyone help ?
replaced with this :
<li <?php wp_list_categories(‘title_li=’); ?>
is what you did already in your header.php
So tweak that line again for my-category-order plugin.sorry i don’t understand
replaced with this :
<li <?php wp_list_categories(‘title_li=’); ?>
is what you did already in your header.php
So tweak that line again for my-category-order plugin.Hi ngweepin,
In your start post you wrote that you had replaced the list_pages by list_categories in your header.phpNow after downloading the plugin I mentioned read the instructions and modify the list_catgeories statement accordingly.
Instructions: http://geekyweekly.com/mycategoryorder
- The topic ‘customizing navmenu with categories in a specific order’ is closed to new replies.