2010-03-08 19 views
6

Estoy tratando de eliminar/reemplazar el atributo de título en los elementos de categoría utilizados por WordPress. Estoy usando WordPress 2.9.1, con el siguiente código:Quitando el título de wp_list_categories()

<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> 

Por lo que había leído este método utilizado para trabajar en las versiones anteriores (que nunca había probado, aunque). Realmente no quiero hackear los interalos de WordPress, o tener que usar un hack de JavaScript, para algo tan directo. Cualquier ayuda se agradece ...

actualización a continuación es lo que se crea a partir del código ...

<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> 
+0

¿Puede especificar qué quiere decir con "elementos de categoría" para los expertos que no pertenecen al WP? –

+0

... y muestra algunos de los códigos HTML ofensivos? –

+0

Las categorías están (opcionalmente) asociadas a publicaciones de blog, y al mostrarlas usando wp_list_categories() sigue agregando un elemento de título predeterminado (por ejemplo, title = "Ver todas las publicaciones archivadas en #category" al delimitador que crea. No puedo parecer para eliminar o reemplazar el título – Alex

Respuesta

9

Si no desea utilizar el plugin, despojando el código de la Remove Title Attributes plugin se puede ver la función principal que se utiliza con el fin de eliminar los títulos de las categorías ..

abrir su plantilla de archivo/function.php e insertar el siguiente ...

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'); 

esto añadirá un nuevo filtro de sustitución de la salida de la función wp_list_categories utilizado por WordPress y reemplazarla con la función anterior ..

en su ejemplo de código

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

salida sería como

<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> 

fueron los title = "", ha sido despojado por completo .. :)

créditos a: Tim Holt & his plugin

+0

Muchas gracias !! Pero ¿por qué use_desc_for_title = 0 no funciona? http://codex.wordpress.org/Template_Tags/wp_list_categories – starikovs

0

De forma predeterminada, wp_list_categories inclu de la descripción de Categoría en el atributo de título si hay una, o "Ver todas las publicaciones presentadas bajo categoría" si no hay una descripción.

No me gusta tener toda la descripción allí. Esto es lo que estoy utilizando en functions.php para personalizar el atributo title:

function custom_categories_title($output) { 
    $search = '/title=".+"(.*>)(.+)</i'; 
    $replace = "title=\"View all articles filed under $2\"$1$2<"; 
    return preg_replace($search, $replace, $output); 
} 
add_filter('wp_list_categories', 'custom_categories_title'); 

Si simplemente quería quitar el título de atributos por completo, podría utilizar

$search = '/ title=".+"/i'; 
    $replace = ''; 
3

Esto es un poco de una respuesta tardía en un antiguo puesto, pero hay una manera mucho más sencilla que no requiere plugins o añadiendo a functions.php:

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

o, si se utiliza con otras personalizaciones a la salida:

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

Esta es probablemente su mejor opción para cualquiera que quiera hacer esto sin ninguna función.php trabajo

Simplemente agregue esto a su plantilla.

   <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> 
Cuestiones relacionadas