web-dev-qa-db-fra.com

Le point d'utilisation de apply_filters ()

Pendant que j'essaie de développer un plugin, j'ai essayé de Voir un autre plugin faire la même chose que mon plugin va réaliser, puis j'ai vu Le développeur dans la plupart des fonctions travailler avec la fonction apply_filters() et je ne comprenais pas pourquoi. Ceci est un exemple ci-dessous:

public static function myFunction() {
    return apply_filters( 'du/class/method' array(
        'index'    => 'value',
        'index'    => 'value',
        'index'    => 'value',
        'index'    => 'value',
    ) );
}

comme vous pouvez le voir dans le premier paramètre de la fonction apply_filters(), il existe un paramètre de chaîne. Partout où je vois cette fonction, je vois toujours quelque chose comme du/class/method.

S'il vous plaît est-il une explication pour cela.

1
Simo Patrek

Le but est de permettre aux développeurs de personnaliser les aspects de votre thème ou de votre plugin.

Lorsque vous appelez apply_filters(), vous fournissez un nom et une valeur que les développeurs doivent pouvoir filtrer.

Pour votre exemple:

$array = apply_filters( 'du/class/method' array(
    'index'    => 'value',
    'index'    => 'value',
    'index'    => 'value',
    'index'    => 'value',
) );

Les développeurs peuvent maintenant modifier la valeur de $array dans votre plug-in en utilisant le filtre du/class/method avec add_filter(). Pour ajouter un article, peut-être:

function wpse_303378_filter( $array ) {
    $array[] = 'New item';

    return $array;
}
add_filter( 'du/class/method', 'wpse_303378_filter' );

Le nom du filtre, dans ce cas, du/class/method peut être celui que vous souhaitiez, mais de nombreux développeurs vont le "nommer en espace" afin qu'il ne soit pas en conflit avec d'autres plugins. Les champs personnalisés avancés, par exemple, préfixent tous ses crochets avec acf/. Votre exemple implique que le nom du filtre utilise la classe et la méthode dans lesquelles il apparaît afin de regrouper les filtres associés, mais cela dépend du plugin.

Vous pouvez en savoir plus sur les filtres ici .

3
Jacob Peattie