Removing title from wp_list_categories()

15,906

Solution 1

If you don't want to use the plugin, stripping the code from the Remove Title Attributes plugin you can see the main function used in order to remove the titles from the categories..

open your template/function.php file and insert the following...

function wp_list_categories_remove_title_attributes($output) {
    $output = preg_replace('` title="(.+)"`', '', $output);
    return $output;
}
add_filter('wp_list_categories', 'wp_list_categories_remove_title_attributes');

this will add a new filter replacing the out of the wp_list_categories function used by wordpress and replace it with the function above..

in your code example

<div id="categories">
  <h3>Manufacturers</h3>
    <ul>
      <?php wp_list_categories(); ?>
    </ul>
</div>

Would output as

 <div id="categories">
      <h3>Manufacturers</h3>
        <ul>
          <li class="cat-item cat-item-7"><a href="http://localhost/crosstrainers/?cat=7">Featured</a></li>
        </ul>
    </div>

Were the title="", has been stripped out completely.. :)

credits to: Tim Holt & his plugin

Solution 2

This is a bit of a late answer on an old post but there's a much more simple way which doesn't require plugins or adding to functions.php:

<?php wp_list_categories('title_li='); ?>

or, if using with other customisations to the output:

<?php $args = array (
    'title_li'           => __( '' ),
    'hide_empty'         => 0,
    'show_count'         => 1,
    'use_desc_for_title' => 0,
    'child_of'           => 1
);
wp_list_categories( $args ); ?>

Solution 3

There's a plugin for that maybe this can help at least looking at the plugin code.

http://wordpress.org/extend/plugins/remove-title-attributes/

Solution 4

This is probably your best option for anyone looking to do this without any functions.php work

Simply add this to your template.

                <ul class="nav">
                    <?php wp_list_categories( array(
                        'orderby' => 'name',
                        'taxonomy' => 'product_cat',
                        'depth' => 1,
                        'title_li' => '',
                        'hide_title_if_empty' => true,
                        'use_desc_for_title'  => 0,
                        'include' => array( 28, 27, 8, 29, 43, 31 )
                    ) ); ?>
                </ul>
Share:
15,906
Divyansh
Author by

Divyansh

I'm a Web Developer based in England, but have lived in Chester, Edinburgh, Prague and Winchester previously. I use SASS, Compass, Foundation, Javascript, JQuery, as well as PHP (mainly WordPress). My website is webconstrukt.com

Updated on August 05, 2022

Comments

  • Divyansh
    Divyansh over 1 year

    I'm trying to remove/replace the title attribute on the category elements used by WordPress. I'm using WordPress 2.9.1, with the following code:

    <div id="categories">
        <h3>Manufacturers</h3>
            <ul>
                <?php str_replace("title=\"View all posts filed under ","",wp_list_categories('use_desc_for_title=0&exclude=1,2,3,4,5&title_li=&hierarchical=1')); ?>
            </ul>
    </div>
    

    From what I had read this method used to work on older versions (I had never tried it though). I really don't want to hack at the interals of WordPress, or have to use a JavaScript hack, for something so straight forward. Any help is appreciated...

    Update below is what is created from the code above...

    <div id="categories">
    <h3>Manufacturers</h3>
    <ul>
    <li class="cat-item cat-item-7"><a href="http://localhost/crosstrainers/?cat=7" title="View all posts filed under Featured">Featured</a>
    </li>
    </ul>
    </div>