I just realized that they added some sweet features to the wp_list_pages() funtion in WordPress 2.7. These include the ability to add html before and after menu items.
I was struggling earlier today, trying to squeeze graphic dividers between dynamically-created between menu items. After trying all sorts of CSS tricks, I discovered this simple workaround included in WordPress since 2.7.
The basic code to add an image after each menu item looks like this:
<?php wp_list_pages(‘link_after=<img src=”http://mydomain.com/myImage.gif”‘); ?>
ALSO, as a bonus, I also discovered the brand new (since 2.7) function, wp_page_menu(), which is similar to the aforementioned wp_list_pages function, except that this one is specially-designed to allow us to add the “home” page to the menu. My guess is that the new wp_page_menu() function will eventually replace wp_list_pages().
Enjoy!
3 Comments
More posts from themightymo.com
How to Connect a GoDaddy Site to ManageWP
GoDaddy owns ManageWP, and, strangely, they make it very difficult to add GoDaddy-managed WordPress sites to their ManageWP service. Thankfully, there’s a quick workaround: Visit https://yoursite.com/wp-admin/plugins.php?showWorker=1 — This will make the ManageWP “Worker” plugin visible. Copy the connection info from the ManageWP Worker plugin. Add the site per-normal on ManageWP. That’s it! I hope this…
How to check if your current page is the wp-login.php page
I realized this morning that my TMM Maintenance Mode WordPress plugin had a bug that was causing the wp-login.php page to be inaccessible. The solution was to write a simple function that checks whether or not we’re currently on a login page, and then add a call to that function in my code. Here’s the…
WooCommerce Product Image Gallery Not Loading with WP Rocket Active
Today I updated a WooCommerce site, and everything worked fine, except for the images on product pages – they were not displaying at all. After a lot of trial & error, I realized that WP Rocket was to blame. I’m not sure exactly what the issue was (though my hunch is that it had to…
Good tips Toby. Thanks.
This works great for putting an item next to all of the menu items but is there a way to use the link_after command for only one of the menu items? For example, if I wanted to have just one menu item (page id 20) have an icon to the right of the text?
Since wp_list_pages() gives each list item its own class, you could run an “if…then” statement in php to add a “display:none;” CSS class to the appropriate items. Or you could just use CSS to manually hide each image. Something like:
.page_item page-item-7 img{
display:none;
}
I haven’t tried this, but it seems like it should work.