Lors du développement de plugins WordPress, les crochets sont au cœur de la mise en œuvre d'extensions et de capacités de personnalisation. Nous enregistrons généralement des crochets avec des fonctions telles que add_action () ou add_filter () , et ces crochets sont généralement stockés sous forme de tableaux. Lorsque nous devons gérer ces crochets dans les plugins, nous pouvons rencontrer la nécessité de retirer ou de supprimer certains crochets. Dans ce cas, la fonction Array_Diff_ukey () de PHP peut être utile pour nous aider à gérer efficacement les tableaux de crochets.
array_diff_ukey () est une fonction de PHP qui compare les clés de deux tableaux et renvoie l'ensemble de différence. Il compare les clés d'un tableau via une fonction de comparaison définie par l'utilisateur (fonction de comparaison des touches). Si une clé n'apparaît pas dans un autre tableau, elle sera retournée. La syntaxe de cette fonction est la suivante:
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 : le premier tableau
$ array2 : le deuxième tableau
$ key_compare_func : fonction de comparaison de clé définie par l'utilisateur
Dans WordPress Plugin Development, nous pouvons avoir plusieurs tableaux de crochets contenant différents noms de crochets et fonctions de rappel. Pour gérer efficacement ces tableaux de crochets, array_diff_ukey () est un outil très efficace, en particulier lors de la suppression des crochets qui ne sont plus nécessaires.
Supposons que nous ayons un tableau de crochets avec plusieurs noms de crochets en tant que touches et fonctions de rappel comme valeurs. Nous voulons retirer certains crochets, ce qui peut être fait en suivant les étapes:
// Exemple de tableau de crochet
$hook_array = [
'init' => 'my_init_function',
'wp_head' => 'my_wp_head_function',
'wp_footer' => 'my_wp_footer_function',
'admin_bar_menu' => 'my_admin_bar_function',
];
// Des crochets qui doivent être supprimés
$hooks_to_remove = ['wp_footer', 'admin_bar_menu'];
// Définir une fonction de comparaison,Comparez les clés du crochet
$key_compare_func = function($key1, $key2) {
return strcmp($key1, $key2);
};
// utiliser array_diff_ukey() Retirer le crochet
$updated_hooks = array_diff_ukey($hook_array, array_flip($hooks_to_remove), $key_compare_func);
// Résultats d'impression
print_r($updated_hooks);
Dans l'exemple ci-dessus, nous définissons d'abord un tableau $ hook_array contenant le nom de crochet et la fonction de rappel. Ensuite, un tableau de crochet $ hooks_to_remove qui doit être supprimé est défini. Ensuite, nous utilisons la fonction array_diff_ukey () pour comparer les clés du crochet et supprimer les crochets dans $ hooks_to_remove .
Efficacité : array_diff_ukey () ne se comparera que selon les clés, en évitant les opérations de comparaison complexes sur les valeurs. Par conséquent, il est plus efficace pour les tableaux de paires de valeurs clés tels que les tableaux de crochets.
Flexibilité : puisque Array_Diff_ukey () utilise une fonction de comparaison définie par l'utilisateur, les clés peuvent être personnalisées en fonction des besoins réels, ce qui a une flexibilité plus élevée.
Simplicité : Grâce à cette fonction, nous n'avons pas besoin d'écrire manuellement des boucles pour supprimer les crochets inutiles, le code est simple et facile à entretenir.
La fonction array_diff_ukey () est un outil très utile qui nous aide à supprimer efficacement et concise des crochets dont nous n'avons plus besoin lors de la gestion des tableaux de crochets dans les plugins WordPress. En combinant l'utilisation de fonctions de comparaison de clés, nous pouvons atteindre une gestion des crochets plus flexible, améliorant ainsi les performances et la maintenabilité du plug-in.