web-dev-qa-db-fra.com

S'engager plusieurs fois dans la même action épuise-t-il la mémoire?

Actuellement, j'ai trois fonctions qui fonctionnent sur pre_get_posts. Je les appelle comme ça:

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

Cela me permet de garder les fonctions ordonnées et séparées, mais le fait d’appeler trois fois à la même action est-il différent de celui d’appeler une fonction combinée une fois, une ponction sur les ressources?

7
SinisterBeard

Je suppose que tu veux dire

add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );

versus

add_action( 'pre_get_posts', 'combined_into_single_callback' );

Vous pouvez simplement vérifier la différence en utilisant, par exemple, memory_get_usage() et timer_stop() . Beaucoup de bons plugins existent pour aider avec ça.

Je dirais que go avec le premier, car ils semblent être des rappels indépendants et probablement plus faciles à maintenir.

Je m'attendrais à ce que cela dépende principalement des fonctions de rappel que vous exécutez ici: private_groups(), search_results() et name_profiles() par rapport à combined_into_single_callback().

La configuration de hook en elle-même ne devrait pas épuiser les ressources, car il ne s'agit que de trois nouveaux éléments supplémentaires dans un tableau global.

Ce que vous devez faire attention lorsque vous utilisez le pre_get_posts est de ne cibler que l’instance WP_Query correspondante et d’éviter d’exécuter des blocs de code coûteux pour toutes les instances.

5
birgire