web-dev-qa-db-fra.com

Comment puis-je supprimer les balises <br> de wp_list_categories?

Si je passe 'style' => 'none' comme argument à wp_list_categories, les balises <li> sont supprimées. C'est bien, mais les tags <br> sont injectés. Comment est-ce que je peux les retirer?

2
dave dave

Le nouvel attribut separator de wp_list_categories()

Je pense que vous recherchez le nouvel attribut separator, qui sera présenté ici dans WordPress 4.4 et qui approche à grands pas J'ai localisé le billet de train ici # 9025 .

Ensuite, vous pouvez utiliser:

$args = [
    'style'     => 'none',
    'separator' => '', // <-- Removes the default one
];

wp_list_categories( $args );

où par défaut c'est 'seperator' => '<br />';

Exemple:

On a:

<a href="http://example.tld/category/red/" >Red</a>
<a href="http://example.tld/category/green/" >Green</a>
<a href="http://example.tld/category/blue/" >Blue</a>

au lieu de

<a href="http://example.tld/category/red/" >Red</a><br />
<a href="http://example.tld/category/green/" >Green</a><br />
<a href="http://example.tld/category/blue/" >Blue</a><br />
2
birgire

Essayez quelque chose comme ça:

$args = array( 
    'echo' => 0,
    // your other parameters
);
echo str_replace( "<br>", "", wp_list_categories( $args ) );
1
James Jones

Malheureusement, je ne peux pas encore commenter, mais James Jones a raison dans wp-includes/category-template.php @ 1103, vous verrez que si le paramètre style n'est pas défini, il produira un <br /> à la fin de chaque élément.

la seule chose qui ne va pas, c'est qu'il devrait être

str_replace( "<br />", "", wp_list_categories( $args ) );

pensez également à définir le paramètre echo sur false, sinon le résultat sera immédiatement généré par le code HTML.

1
Hans Koch