web-dev-qa-db-fra.com

add_filter to post-gallery et supprime tous les fichiers <br>?

hé les gars, j'ai vraiment besoin de votre aide.

Chaque fois que j'utilise une galerie dans wordpress et que je règle ses colonnes sur 1 Wordpress ajoute automatiquement <br style="clear: both"/> après chaque <dl class="gallery-item">. J'ai vraiment besoin d'empêcher ce comportement et par conséquent j'aimerais ajouter un filtre à mon functions.php

Les exemples suivants ne fonctionnent pas.

add_filter( 'post_gallery', 'remove_br_gallery', 9);

function remove_br_gallery($output) {

    return preg_replace('#\<br*.?\>#is', '',  $output);

}  


add_filter( 'the_content', 'remove_br_gallery', 9);

function remove_br_gallery($output) {

    return preg_replace('#\<br*.?\>#is', '',  $output);

}

Ceci non plus:

return str_replace('<br style="clear: both">', '',  $output);  

Une idée de comment je pourrais résoudre ça? Je ne veux tout simplement pas avoir de <br style="clear: both"/> à l'intérieur de mes galeries.

3
mathiregister

EDIT: vous devez appeler votre filtre après le traitement du shortcode, en lui donnant une priorité supérieure à 10, et vous devez faire correspondre une expression sur plusieurs lignes.

Essayez ce travail avec mon installation et en utilisant le raccourci standard de la galerie:

add_filter( 'the_content', 'remove_br_gallery', 11, 2);
function remove_br_gallery($output) {
    return preg_replace('/<br style=(.*)>/mi','',$output);
}
1
keatch

Vous pouvez également essayer de désactiver l’effet du <br> via un remplacement de la feuille de style, par exemple:

body dl.gallery-item + br { display: none; }

3
wyrfel

Vous pouvez utiliser Cleaner Gallery plugin de Justin Tadlock pour obtenir un balisage propre.

0
kucrut

Preg remplacer devrait contenir des apostrophes.

return preg_replace('/<br style="(.*)">/mi','',$output);
0
Betagoo