Pourquoi certaines fonctions essentielles obtiennent-elles wp_ tandis que d'autres non? Quelle est la règle?


15

Existe-t-il des directives ou une justification pour lesquelles certaines fonctions de code WP sont préfixées wp_? par exemple: wp_insert_post()vsupdate_post_meta()

Réponses:


8

Ce n'est pas une réponse impressionnante, mais - aucune .

get_ce suffixe signifie généralement que la fonction renvoie quelque chose, the_cette fonction fait écho à quelque chose.

wp_ ne porte pas de sens technique et l'incohérence dans la dénomination vient de nombreux développeurs qui participent et le manque de mouvement pour unifier (aller de l'avant est considéré comme plus important que les nettoyages majeurs d'anciennes choses pour le rendre propre).


1
Je comprends (quelque peu) le raisonnement pour ne pas remédier à la situation actuelle; cependant, je suis perplexe face à l’absence de définition d’un point à partir duquel, dorénavant, une nomenclature de fonctions définie serait appliquée. Un vœu pieux, je suppose.
Chip Bennett

Merci Rarst. Otto l'a confirmé. Soupir. J'espérais ... je suis avec Chip!
Tom Auger

2

Wordpress a été et est écrit par de nombreuses personnes différentes. Les correctifs sont abordés dans wordpress trac et quiconque soumet ou attribue un ticket trac peut publier des correctifs. Si le patch est accepté et déplacé au cœur d'une prochaine version, il est simplement là. Ainsi, parfois, les fonctions, vars, etc. obtiennent le préfixe tandis que d'autres fois non. Il dépend des développeurs participants.


2

Le wp_préfixe est généralement ajouté pour éviter les conflits de noms avec:

  • fonctions PHP natives, telles que get_current_user ()
  • fonctions WP plus anciennes / obsolètes, telles que get_archives ()
  • bibliothèques tierces?

1

J'ai toujours supposé que la distinction était que - au-delà des balises de modèle de base, qui ont généralement juste le nom descriptif le plus simple possible:

  1. les fonctions qui commencent par wp_sont généralement des fonctions d'API publiques de haut niveau, qui sont à peu près garanties d'être toujours présentes et de conserver une compatibilité ascendante.
  2. les fonctions sans ce préfixe sont des fonctions internes, des choses avec lesquelles vous ne devriez pas vous occuper à moins de savoir ce que vous faites.

Je ne sais pas si cela a jamais été intentionnel. Et comme l'ont dit les deux autres réponses, cela ne tient pas toujours. Votre exemple update_post_metaest un exemple parfait de quelque chose qui semble devoir avoir un wp_préfixe si ma classification est vraie. Mais il y a suffisamment de code hérité profond dans WordPress pour repousser toute tentative de donner un sens à toute convention de dénomination.


haha. En fait, je pensais que c'était exactement le contraire - que les fonctions wp_ étaient plus de la variété interne (vous pouvez l'utiliser-mais-c'est-vraiment-interne) tandis que les autres étaient plus publiques. Aussi triste que cela puisse paraître, Rarst et al. ont raison et il n'y a aucune justification.
Tom Auger

2
Pour mémoire, les fonctions vraiment internes commencent par le trait de soulignement seul. _*Mais il n'y en a pas beaucoup et en pratique elles ne sont pas non plus absolument internes uniquement.
Rarst
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.