J'essaie de formater un nombre dans une cellule de tableau avec des séparateurs de virgule entre des milliers. Le numéro provient d'un champ personnalisé généré dans le plug-in Advanced Custom Fields, où il doit être un nombre.
(Mais j'ai aussi essayé de simplement entrer le numéro directement dans les exemples ci-dessous.)
J'obtiens la valeur numérique correcte, mais le formatage ne fonctionne pas. De plus, j'obtiens des résultats différents avec number_format à l'intérieur d'une cellule de tableau et à l'extérieur d'une cellule.
Mon numéro est le 429000, récupéré par the_field ('price').
Voici ce que j'ai essayé à l'intérieur de la cellule:
<td class="pl-property-price"><?php number_format( the_field('price')); ?> </td>
<td class="pl-property-price"><?php number_format((int) the_field('price')); ?> </td>
<td class="pl-property-price"><?php number_format( intval(the_field('price'))); ?> </td>
<td class="pl-property-price"><?php number_format( the_field('price'), 0, ".", ","); ?> </td>
et quelques autres variations.
Peu importe ce que je fais, il génère 429000 sans séparateur de virgule.
Maintenant, si j'essaye de faire écho à la valeur en dehors de la table, en utilisant un code comme celui-ci et toutes les variations similaires à celles ci-dessus en utilisant
<?php echo number_format(the_field('price')); ?>
Je reçois 4290000, ce qui ajoute un zéro supplémentaire.
Je suis perplexe.
On dirait que la fonction que vous utilisez est la the_field fonction de ACF qui est une fonction qui sort une chaîne pour que le dosage de formatage number_formatt affecte la sortie.
Ce code:
<?php echo number_format(the_field('price')); ?>
L'écho n'imprime vraiment rien, la fonction the_fields imprime la sortie, c'est pourquoi la fonction number_format n'a aucun effet sur la sortie.
Essayez d’obtenir le champ via une fonction différente get_field par exemple, ou vous pouvez ajouter à la fonction the_fields un argument $ format_valeur comme vous avez pu le voir dans docs .
Cela devrait fonctionner:
<?php echo number_format( get_field( 'price' ) ); ?>
get_field()
: renvoie la valeur d'un champ spécifique.the_field()
: Affiche la valeur d'un champ spécifique.Le bon extrait ressemble à ceci:
<?php echo number_format( get_field( 'price' ) ); ?>
Dans votre cas, vous devez utiliser la fonction get_field
au lieu de the_field
.
the_field
renvoie la valeur, alors que get_field
renvoie une valeur dans laquelle vous pouvez transmettre la valeur de paramètre au number_format
.
<?php echo number_format(get_field('price')); ?>
Vous pouvez également en apprendre plus sur number_format