web-dev-qa-db-fra.com

Comment filtrer 'post_gallery' après tous les autres filtres/plugins, etc.

J'essaie de reformater un peu la sortie de la galerie, de modifier les colonnes par défaut et le paramétrage des liens, ainsi que d'exclure l'image sélectionnée des images de la galerie.

Je peux utiliser * add_filter ('post_gallery' ...) * dans functions.php mais cela semble écraser tous les appels précédents à ce filtre par le noyau et les plugins.

Exemple de cet écrasement demandé par m0r7if3r:

function test1($content, $attr) { return $content.'Test One ';}
add_filter('post_gallery', 'test1', 10, 2);
function test2($content, $attr) { return $content.'Test Two ';}
add_filter('post_gallery', 'test2', 10, 2);

Au lieu de sortir la galerie d'origine et d'ajouter "Test One" à la sortie, la première fonction ne fait que sortir "Test One". Intéressant si j'applique une deuxième fonction comme ci-dessus, 'Test One Test Two' est sorti .. bizarre je pense! Une idée pourquoi?

Alternativement, je peux * remove_shortcode ('gallery', 'gallery_shortcode') * et ajouter le mien, mais cela supprime également toute manipulation par d'autres scripts/plugins.

Remarque: il semble y avoir une solution future ici où un filtre * post_gallery_output * a été suggéré, mais aucune idée du moment où cela sera ajouté au noyau. Je ne sais pas comment et quand des correctifs comme celui suggéré sont ajoutés, donc plus d'informations à ce sujet seraient également utiles.

Alors ... des idées pour que je puisse y arriver maintenant? Mon principal problème est principalement la suppression de l’image présentée. Je peux filtrer le contenu pour changer la colonne de la galerie et le type de lien pour le moment.

Merci! Ben

2
Mere Development

Ajouter un filtre n'est pas destiné à remplacer complètement le code existant, mais plutôt à l'ajouter. Dans le cas de post_gallery, si vous retournez ANYTHING mais '', l'action par défaut ne sera effectuée. Si vous regardez à la ligne 767 de /wp-includes/media.php, vous pouvez voir où le crochet est appliqué et contourner ce problème. gallery_style peut être utilisé pour ajouter simplement du CSS à la valeur par défaut. Si vous voulez faire plus que cela, vous devrez écrire un tout nouveau résultat.

2
mor7ifer