Simple Sidebar Navigation Plugin for WordPress
Details
Simple Sidebar Navigation is a WordPress plugin that allows you to easily create custom sidebar navigation widgets. By simply selecting existing pages from the list or adding custom links you can create sidebar navigation blocks in seconds without any PHP knowledge.
DOWNLOAD PLUGIN
Current Versions:
- 2.1.2
for WordPress 2.8 and newer
-
2.0.9 for WordPress 2.7 and older
Earlier versions are available as well.
Features Include:
- Flat and multi-level navigation hierarchy for existing pages and custom links.
- Very flexible conditional appearance options (greatly expanded from before 2.0 version).
- Out-of-the-box Suckerfish support.
- Option to add navigation links with custom title, url and target attribute.
- Unlimited number of navigation widgets.
- Optional setting includes blog posts into the navigation selection list (only pages are available by default).
- Support for custom drop-down menus CSS.
Known Issues:
- Non-English alphabet makes links to disappear in the right selection list after saving.
- There is a fluxing behavior when child links can not be added under custom links. Happens rare, but I caught it a few times.
Support Forums:
I had to close comments under this post because it's getting hard to manage them and follow the conversations. If you would like to submit a bug please do the following:
- Register in the Forums.
- Login and go to the User Control Panel (User CP).
- Under Group Membership join "Approved Registered Users" group (if you skip this step, you won't be able to post in the forums).
- Then post your message in the Simple Sidebar Navigation thread.
Demonstration
DOWNLOAD PLUGIN
Instructions
Feedback is appreciated! If you have any troubles with the plugin, submit your questions to the Support Forum.
From the readme.txt
The data storing conditions have been changed since 2.0 version.
- The plugin will try to convert your existing simple sidenav widgets, but I suggest you to backup or make notes about your existing simple sidenav widgets, in case something goes wrong, so you can restore or duplicate your previous settings.
Installation - like any other basic plugin:
- Upload simple-sidebar-navigation folder to the /wp-content/plugins/ directory
- Activate the plugin through the 'Plugins' menu in WordPress
- Go to the Widgets dashboard, scroll to the bottom to add the desired number of widgets. Add widgets to your sidebars and edit them. The edit window should be self explanatory.
Top Navigation Management functionality:
Edit your theme's header template or the correct template that contains header navigation. If you have static navigation links in your template or any other functions that generate your top navigation - paste it instead of this tag <!--YOUR OLD NAVIGATION -->.
<?php
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Simple Top Nav') ) : ?>
<!--YOUR OLD NAVIGATION -->
<?php
endif;
?>Until the "Simple Top Nav" widget is created in the administrative widgets dashboard - your old navigation will still be functioning. The same applies when the Simple Sidebar Plugin is disabled or removed.
- Go to the administrative Widgets dashboard and select "Simple Top Nav" as your current widget. Add one of the available Simple Sidebar Navigation widgets to the sidebar and edit it.
Suckerfish or Drop-Down Menus:
- Suckerfish.css default stylesheet is included. If you would like upload your own, separate from your main CSS file, drop-down menus stylesheet - you can specify its path via Settings => Simple SideNav.
- You can generate a custom stylesheet with this Multi-Level Navigation CSS Generator, but you'll have to append each #suckerfishnav ID with .sf Class. To do so, simply search and replace [#suckerfishnav] with [#suckerfishnav .sf], without the square brackets, using any text editor. Make sure you enter a space between the ID and the Class as shown above.
Notes:
- If you add more than one widget to the Simple Top Nav sidebar - it may break your theme's design or layout since only one list of links is usually expected to be there.
- Widget's Title in the Simple Top Nav sidevar should be blank - otherwise it will be hidden via inline CSS as display:none. I couldn't figure out how to alter the widget "on load" to remove it's title since it shouldn't be in the top navigation.


How can I seperate (better ad) more than one ID in the field "Display only on: page(s)"?
One ID works fine but when I want to write a second ID in (with the "common" seperators like "||" and so on) it, nothing is shown.
Hope you can get what I mean an can give me an answer for my BIG problem.
And sorry once again for going this way.
Regards from germany,
horch
Thanks Casper!
I think you can achieve this kind of dynamic URL effect by simply using the slug in the "Custom Link URL" field. For example, if you enter a slug "twenty-two" in the Custom Link URL - it will be added to every URL where the actual widget appears. So, if the widget appears on page http://domain.com/video - then the link should work as http://domain.com/video/twenty-two. You just need to make sure that your widgets only appear on the pages that actually have those links.
I'm not sure if I want/need to make widget number to be unlimited, but if you want to hack in - you probably could do so by editing the simple-sidenav.php file and changing the number 9 in all occurrences (2 functions: simple_sidenav_setup() and simple_sidenav_page()) to let's say 99 and number 10 to 100. Then you should have ability to add up to 99 widgets (I think).
Let me know if any of these options work for your project.
Good luck!
Roz,
if your site is live, post a link and I'll check it out. If you can highlight the links in the sidebar and read the anchor text on the highlighted area - it's a CSS issue in your template. I wrapped all links into tags to add more flexibility in styling - your theme might have some special styles for spans, in this case you'll need to overwrite them with your custom style. Should be easy to fix via CSS.
Let me know if your site is live, so I could take a peak.
if( $link[0] == 'page' ){ $output .= '< li class="menu-'.strtolower($link[1]).'">< a href="' . get_page_link($link[1]) . '">< span>' . $titles[$link[1]] . "< / span >< / a >< / li>\n"; } elseif( $link[0] == 'custom' ) { $output .= "< li class='menu-".strtolower($link[1])."'>< a href=" . $link[2] . "'>< span>" . $link[1] . "< / span>< / a>< / li>\n"; }wp_list_pages()function uses, and implemented the same class for the active navigation items:class="current_page_item". Keep in mind that the class is applied to the list item (< li >) instead of the< a >hyperlink - that's how it's done by the WP nativewp_list_pages()function. Feel free to post your questions here.Thanks for this great plugin. I was wondering if it does subitems as well. Currently it puts out a nice list, but I need something like this:
Any way to achieve this?
Add the following code after "$pages = get_pages();" on lines 17 and 52 of simple-sidenav.php.
// add posts to the pages array
$posts = get_posts();
$pages = array_merge($pages, $posts);
I think you should add this to the plugin. Or at least add a way to turn posts on and off in your options list.
Thanks for the suggestion Mark. I was thinking adding this feature and making it optional, but I don't know how that will work if someone has thousands of blog posts in a span of years. That just doesn't seem a user friendly option in that case. I feel that mostly people want to put page links and category links into their navigation. Blog post link would be rare, so it would be much easier to create a custom link instead by using slug or post ID in that case. I can't imaging finding a post among hundreds or thousands of others in a single list. If some one knows the exact post they would like to add to the navigation - why not use the post ID?
I just don't feel comfortable adding this option in due to a large number of possible posts in a list, which won't make things easier, but more confusing. Feel free to collaborate on this subject a little more, - I may see the benefits of it.
Hey guys - there is an issue with the WordPress Repository Server. As soon as they fix it I will update the plugin and change the red warning message at the top of this post.
Thanks!Werner, I just tested on my own site upgrading from 1.3.2 to 2.0.1 and everything was just fine. I don't know how to replicate the same error as you have.... can you open up the php file and add these lines:
and email me the output at editor@ibsteam.net? I'll try to take a closer look. Also, double check if you have the 2.0.1 version. BTW, did you try creating a new widget and see if it works?i don't know if anyone else have this problem, is when add a post to the navigation, the plugin is not putting the correct url (i am using permalink) .. so i had to edit the plugin and replace.
get_page_link($link[$i]['page']) for get_permalink($link[$i]['page'])
if(array_key_exists('page', $link[$i])){
$output .= "\t\t<li class='".simple_sidenav_current_page($link[$i]['title'])."'><a
class='depth_".$link[$i]['depth']."' href='" . <b>get_permalink($link[$i]['page'])</b>
. "'><span>" . $titles[$link[$i]['page']] . "</span></a>";
anyway ,., am not expert in wp ,, but at least work for me.
Thanks Eben!
When I added new conditional settings to turn on/of drop down menus, I forgot to remove the unconditional action that was loading suckerfish javascript into the header.
Just remove line 665: add_action('wp_head', 'simple_sidenav_head_default'); It fixed the error for me and everything seem to work just fine.
Hi,
seems to be a great plugin but I have tonns of errors as I posted there http://www.ibsteam.net/forums/showthread.php?p=5573#post5573 . I maybe do something wrong but I don't know what ...
And if you look for somebody to translate it in french ... I could try ...
Best regards,
Christophe Charron