Nous avons vu dans la syntaxe des balises SPIP qu’il était possible de modifier le comportement et l’affichage des balises en leur attribuant des filtres.
[ option avant (#BALISE|filtre1|filtre2|...|filtren) option après ]
Les filtres 1, 2, ..., n sont appliqués successivement à la #BALISE.
Les filtres de mise en page
 majuscules fait passer le texte en majuscules. Par rapport à la fonction de PHP, majuscules s’applique également aux lettres accentuées.
 majuscules fait passer le texte en majuscules. Par rapport à la fonction de PHP, majuscules s’applique également aux lettres accentuées.
 justifier fait passer le texte en justification totale (<P align=justify>).
 justifier fait passer le texte en justification totale (<P align=justify>).
 aligner_droite fait passer le texte en justification à droite  (<P align=right>).
 aligner_droite fait passer le texte en justification à droite  (<P align=right>).
 aligner_gauche fait passer le texte en justification à gauche  (<P align=left>).
 aligner_gauche fait passer le texte en justification à gauche  (<P align=left>).
 centrer centre le texte  (<P align=center>).
 centrer centre le texte  (<P align=center>).
Les filtres des dates
Les filtres suivants s’appliquent aux dates ((#DATE par exemple).
 affdate affiche la date en français, par exemple « 13 janvier 2001 ».
 affdate affiche la date en français, par exemple « 13 janvier 2001 ».
 jour affiche le jour (en nombre).
 jour affiche le jour (en nombre).
 mois affiche le mois (en nombre).
 mois affiche le mois (en nombre).
 annee affiche l’année.
 annee affiche l’année.
 [SPIP 1.0.2] heures affiche les heures d’une date (les dates fournies par SPIP contiennent non seulement le jour, mais également les horaires).
 [SPIP 1.0.2] heures affiche les heures d’une date (les dates fournies par SPIP contiennent non seulement le jour, mais également les horaires).
 [SPIP 1.0.2]  minutes affiche les minutes d’une date.
 [SPIP 1.0.2]  minutes affiche les minutes d’une date.
 [SPIP 1.0.2] secondes affiche les secondes.
 [SPIP 1.0.2] secondes affiche les secondes.
 nom_jour affiche le nom du jour (lundi, mardi...).
 nom_jour affiche le nom du jour (lundi, mardi...).
 nom_mois affiche le nom du mois (janvier, février...).
 nom_mois affiche le nom du mois (janvier, février...).
 saison affiche la saison (hiver, été...).
 saison affiche la saison (hiver, été...).
Filtres de logos
 fichier [SPIP 1.4]. Affecté à un logo, ce filtre permet de récupérer directement le nom de fichier correspondant au logo.
 fichier [SPIP 1.4]. Affecté à un logo, ce filtre permet de récupérer directement le nom de fichier correspondant au logo.
 ||autres filtres Contrairement aux versions précédentes, [SPIP 1.4] permet de passer des filtres « maison » sur les logos : la logique est un peu tordue, car il fallait respecter la compatibilité avec SPIP 1.3. L’analyse se déroule comme suit :
 ||autres filtres Contrairement aux versions précédentes, [SPIP 1.4] permet de passer des filtres « maison » sur les logos : la logique est un peu tordue, car il fallait respecter la compatibilité avec SPIP 1.3. L’analyse se déroule comme suit :
-  si le premier « filtre » n’est pas un alignement, SPIP considère qu’il s’agit d’un URL et fait un lien du logo vers cette adresse ;
-  si le premier filtre est un alignement, SPIP considère que le deuxième « filtre » est un URL ;
-  les filtres suivants sont de vrais filtres au sens habituel (y compris des filtres « maison » déclarés dans mes_fonctions.php3 ;
-  pour appliquer un filtre quelconque sans mettre d’URL, il faut mettre deux barres. Par exemple :
 <?php $logo = '[(#LOGO_RUBRIQUE||texte_script)]'; ?>permet de récupérer le logo dans la variable php$logo, pour traitement ultérieur (voir ci-dessous pour la signification de|texte_script).
Filtres de texte
La plupart de ces filtres ont été introduits dans la version [SPIP 1.4]
 liens_ouvrants transforme les liens SPIP qui donnent vers des sites extérieurs en liens de type « popup », qui ouvrent dans une nouvelle fenetre ; c’est l’équivalent du target=blank du HTML. N.B. : les développeurs de SPIP estiment qu’il s’agit en général d’une impolitesse, car les internautes savent très bien s’ils ont envie ou pas d’ouvrir une nouvelle fenêtre - or ce système le leur impose. Mais la demande était trop forte, et nous avons craqué ;-)
 liens_ouvrants transforme les liens SPIP qui donnent vers des sites extérieurs en liens de type « popup », qui ouvrent dans une nouvelle fenetre ; c’est l’équivalent du target=blank du HTML. N.B. : les développeurs de SPIP estiment qu’il s’agit en général d’une impolitesse, car les internautes savent très bien s’ils ont envie ou pas d’ouvrir une nouvelle fenêtre - or ce système le leur impose. Mais la demande était trop forte, et nous avons craqué ;-)
 supprimer_numero sert à éliminer le numéro d’un titre, si par exemple on veut faire des tris d’articles
 supprimer_numero sert à éliminer le numéro d’un titre, si par exemple on veut faire des tris d’articles {par num titre} mais ne pas afficher les numéros (car ils ne servent qu’à ordonner les articles).
 PtoBR transforme les sauts de paragraphe en simples passages a la ligne, ce qui permet de « resserrer » une mise en page, par exemple à l’intérieur d’un sommaire
 PtoBR transforme les sauts de paragraphe en simples passages a la ligne, ce qui permet de « resserrer » une mise en page, par exemple à l’intérieur d’un sommaire
 taille_en_octets permet de transformer un nombre d’octets (25678906) en une chaîne de caractères plus explicite (« 24.4 Mo »).
 taille_en_octets permet de transformer un nombre d’octets (25678906) en une chaîne de caractères plus explicite (« 24.4 Mo »).
 supprimer_tags est une suppression basique et brutale de tous les
 supprimer_tags est une suppression basique et brutale de tous les <...>
 textebrut s’apparente au filtre
 textebrut s’apparente au filtre supprimer_tags, mais il agit de manière un peu plus subtile, transformant notamment les paragraphes et <br> en sauts de ligne, et les espaces insécables en espaces simples. Utilisation, par exemple, pour faire un descriptif META à partir du #DESCRIPTIF : [<meta name='description' content='(#DESCRIPTIF|textebrut)'>]
Filtres techniques
Ces filtres ont été introduits par [SPIP 1.4].
 entites_html transforme un texte en entités HTML, que l’on peut donc implanter dans un formulaire, exemple :
 entites_html transforme un texte en entités HTML, que l’on peut donc implanter dans un formulaire, exemple : [<textarea>(#DESCRIPTIF|entites_html)</textarea>]
 texte_script transforme n’importe quel champ en une chaîne utilisable en PHP ou Javascript en toute securité, exemple :
 texte_script transforme n’importe quel champ en une chaîne utilisable en PHP ou Javascript en toute securité, exemple : <?php $x = '[(#TEXTE|texte_script)]'; ?>. Attention : utilisez bien le caractère ' et non " : en effet, dans le second cas, si votre texte contient le symbole $, le résultat peut être catastrophique (affichage partiel, affichage d’autre chose, plantage php, etc.).
 attribut_html rend une chaîne utilisable sans dommage comme attribut HTML ;  par exemple, si l’on veut ajouter un texte de survol au lien normal vers un article, on utilisera
 attribut_html rend une chaîne utilisable sans dommage comme attribut HTML ;  par exemple, si l’on veut ajouter un texte de survol au lien normal vers un article, on utilisera
<a href="#URL_ARTICLE" [ title = "(#DESCRIPTIF|supprimer_tags|attribut_html)" ]>#TITRE</a>.
 [SPIP 1.6] introduit le filtre
 [SPIP 1.6] introduit le filtre |sinon, qui indique ce qu’il faut afficher si l’élément « filtré » est vide : ainsi [(#TEXTE|sinon{"pas de texte"})] affiche le texte ; si celui-ci est vide, affiche « pas de texte ».
Ajouter ses propres fonctions
Les filtres de SPIP sont des fonctions PHP à une seule variable. Vous pouvez utiliser directement les fonctions habituelles de PHP, mais également créer les vôtres, sur le modèle :
<?php
function mon_filtre($texte){
    $texte = (bidouillages en PHP) ...;
    return $texte;
}
?>
Afin de ne pas avoir à modifier des fichiers de SPIP (qui risqueraient d’être écrasés lors d’une prochaine mise à jour), vous pouvez installer vos fonctions personnelles dans un fichier mes_fonctions.php3 : si SPIP repère un fichier ayant ce nom, il l’inclut automatiquement.
Par exemple, ARNO* a développé le filtre enlettres, qui n’est pas inclus dans la distribution standard de SPIP. Ce filtre écrit un nombre en toutes lettres ( [(#DATE|annee|enlettres)] = « deux mille deux ») ; ce filtre peut être téléchargé sur http://www.uzine.net/spip_contrib/a... ; il suffit de l’ajouter dans votre fichier mes_fonctions.php3 pour l’utiliser.
Depuis [SPIP 1.5], il est possible de passer des paramètres dans les filtres. La syntaxe est
Le filtre doit être défini de la manière suivante dans mes_fonctions.php3 :
On peut ainsi appeler n’importe quelle fonction php, ou s’appuyer sur des fonctions définies dans SPIP ou dans mes_fonctions.php3, pour peu qu’elles respectent l’ordre des arguments (le texte à traiter doit être impérativement le premier argument). Par exemple, pour couper le texte à une longueur donnée (50 caractères), on pourra utiliser [(#TEXTE|couper{50})].