Please help support the continued development of AZIndex, particularly if you are using the plugin in your work or as part of a for-profit website. All contributions, no matter what size, will be gratefully received.

AZIndex 0.8.1 Released

Well, things have been pretty quiet since AZIndex 0.8.0 was released a couple of days ago which, I guess, means that everyone is running with it just fine.  There was one bug reported, though (hat tip to Arnaud for catching that one) and I realized that there really should be a display filter which allows you to modify the contents of your index on a per-item basis.

Hence AZIndex 0.8.1 has arrived.  The new azindex_display_item filter is documented here and I have created a cute little thumbnail index here to show the sort of thing you can do with it.

If you do manage to create an interesting-looking index using any of the new filters, come back here and let us know about it!

51 comments to AZIndex 0.8.1 Released

  • Yea, we can do cats! Thank you so very much for including categories in azindex. See our homepage to see how we use them. This now completely eliminates having to create a custom field each and every time we want to index a new post. Now we can just focus on posting articles, selecting the category, and viola, it will show up on the home page like so. Thank you again for listening to feedback. Now to figure out how to eliminate the css call in the middle of the body code. I really think for advanced users you should simply tell them to copy paste an include call for your plugin’s own css file from their theme’s css, rather than store your plugin’s theme css only in the database and force it to be called in the body as page renders. With an include in the theme’s css to a css file your plugin can modify directly, it can be loaded in the header with the theme’s css, and not break xhtml validation.

    • Glad you like the new function. No need to fret about the CSS — it will get done eventually — probably about the time I fix up the HTML the plugin generates.

  • oh, and could you include pagination as an option (some search engines don’t like anything more than 100 links on a page). And with the pagination, allow for links to each additional page to show up in the navigation (so search engines don’t have to dive into multiple levels to reach pages further down the index).

  • Saw that! Thank you again so much.

  • Hi Mike,
    Well, don’t know what kind of changes you made with the latest update, but it completely destroyed all my previous work to get it right.
    Maybe it works for most people, but it doesn’t for me and – probably more important – I don’t have a clue what you mean with all the filters, indexes, and other blah blah.
    Pity though, cos I like your plugin, guess I am stuck now with version 0.76 🙁

  • Apologies for my rush comment last night…
    OK this morning I had another hard look at it and I sort of figured it out, but I must say that for some things your custom css seems to work and for others it doesn’t, which I find utterly weird.
    I had to add 3 lines to my own css, to make it work, they were ruled out although I put the exact same lines in your custom css too. FYI the lines are:
    #contentleft .azindex h2 {}
    #contentleft .azindex ul {}
    #contentleft .azindex ul li {}

    I hope it is safe to assume that the changes I now made will remain as such even if I update to a new version?
    Will now have a look at your other help files to see if I can “pimp” up my index…
    Still like your plugin and now also version 0.8.1 🙂

    • Hi Piet, no worries about the earlier comment. I was going to ask you for more info so I could help you out, since nobody else has reported any migration issues at all (and I usually get one or two at least!).

      I am glad you sorted it out, though I am not sure I quite understand why your code broke with 0.8.1–I did add an extra “div” around the whole index, which I guess might have been the problem.

      As a rule, unless I say otherwise–and I will always give plenty of warning–your settings (including the custom CSS) should continue to work, as before, when you move up to a new version. So your custom CSS should be safe for the time-being.

      Note: I have already warned everyone that there will be changes to the plugin that will probably break people who are using custom CSS. This is because I will be improving the HTML the plugin generates, and that will probably require changes to any custom stylesheets being used too. This is not likely to happen before the end of April, and I will provide plenty of warning of the changes.

      One thing that might help is that I am adding an option to exclude the index stylesheet from the generated index HTML — so you can keep all the index styles in your theme’s stylesheet (or wherever you like).

      CSS will always be a bit of a headache for some users of the plugin because the look and feel of the index is affected by the current theme’s stylesheet, and there is no easy way for me, the plugin writer, to prevent some themes from affecting the generated index in some adverse way. (I am not sure that adding !important to every CSS style for the index is a good thing!).

      I do intend to write some more detailed documentation on the subject, but I haven’t quite gotten around to it yet!


  • Here’s one of my thumbnail/title/description a-z indexes using your methods.

    copy/paste the url, http is filtered for comments here.

  • Hi Mike,
    great plugin!!! I am building a bibliography site. Although learning fast, I’m not a php genius.
    Each post has a number of custom fields with the key “Author”. If I use your standard settings with “Author” as custom field, the index shows only the very first value of each post.
    How can I get all the “Author” values of each post? I put the following in my function.php but to no avail:
    add_filter(‘azindex_display_item’, ‘my_author’, 10, 2);

    function my_author($item, $idindex) {
    if ($idindex == 2) {
    $authors = get_post_meta($post->ID, ‘Author’, false);
    foreach($authors as $item) {
    return $item;
    Thank you for answering,

  • What a great plug-in! Thanks so much, too for the well-thought out and written tutorial. What’s intuitive to the developer may be hopelessly obscure to us users. Your docs are a model!

    Now for my question…

    I have AZindex running at When I click on a glossary word, it takes me to the single post page. In the right hand sidebar is a list of the glossary subcategories. So if I click on “B” in the sidebar it takes me to a page with all the B index items listed.

    Is there a way I can modify this index (but not others I may use in the future) so that when I click the “B” column header on the main index page, it takes me to the B listing page?


  • Hi man! Your plugin is what I was looking for, but I’m getting this error message after clicking in the “Add index” button:

    Call to undefined function mb_strtoupper() in /home/criterio/public_html/wpblog/wp-content/plugins/azindex/az-index-cache.php on line 863

    Did you guess what could be happening or where to look?

  • Hi, we’ve been using AZIndex on our site and it looks fine in Firefox 3 and IE, but I’ve just noticed the text doesn’t layout correctly in Firefox 3.5 or Opera.

    I’m not sure if it’s a problem with our theme (Atahualpa), or AZIndex.

    Instead of getting

    Main Link

    for each entry, we’re getting

    Information Main Link

    Anyone got any suggestions? Can provide a link for examples if you want.

    • Well, I’m terrible with CSS and only marginally better at basic HTML markup, but I’ve hacked line 187 to read,

      $output .= '<li'.$charlink.($odd ? ' class="azalt"' : '').'>'.'<span class="head">'.$item['head'].$cont.'</span><br /<'.$cr;

      instead of

      $output .= '<li'.$charlink.($odd ? ' class="azalt"' : '').'>'.'<span class="head">'.$item['head'].$cont.'</span>'.$cr;

      to add a single <br /> at the end of the group header, which fixes the problem, although I’ve no idea if it results in compliant markup.

  • Super Info, hat mir sehr geholfen

  • Thanks a lot Tony! You made my day, I have been struggling with this for quite some time. Do have a look my site to see the index working now!

  • Albo

    Would anyone know why after upgrading to the latest version, I am now receiving this error?

    Fatal error: Call to undefined function mb_strtoupper() in /var/www/vhosts/ on line 863

    Any way to fix this?


  • This plugin is exactly what I needed, but I want to change the look of the A-Z links at the top of the page. How do I do that?

  • Michael T.

    For processing multilingual content I use the plugin qTranslate ( which holds all language information in the according db fields of wp_post (post_title, post_content, post_excerpt) separated by shortcodes only, like for wp_title (w/o the spaces):

    Dienste // German
    Services // English

    According to the selected languaged to be displayed the proper text section is rendered.

    AZIndex shows for titles or excperts in headings/sub headings always both languages, i.e. the shortcodes aren’t resolved when the index is created/rendered. – It seems that AZIndex neglects shortcodes of other plugins.

  • Michael T.

    Hi, it’s me again. Unfortunately the qTranslate shortcodes were not rendered in my comment above:

    Service //English
    Dienste //German

    (ignore the spaces)

  • Michael T.

    Next try:
    Dienst //German
    Service //English

    (ignore the dots)

  • Michael T.

    I capitulate – have a look at the qTranslate page.

  • laura

    hi mike
    it’s a great plugin!
    could you possibly make it so it will list full posts in the index too? i tried to edit it myself but i can only get it to list the full posts without html, so there were no carriage returns etc. if you haven’t got time to edit the plugin have you got any tips please?

  • How much of an helpful short article, maintain composing lover

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>