- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aggiungere voce al singolare
-
Aggiungere voce al singolare
Questo codice mette a video il numero di visite e io ho aggiunto la parola "volte" però appare anche quando il conteggio segna 1, percui ci vorrei mettere un codice che intercetta quando è 1 e io ci metto "volta" al singolare.
... // get all data $post_id = (int) ( empty( $post_id ) ? get_the_ID() : $post_id ); $options = Post_Views_Counter()->options['display']; $views = pvc_get_post_views( $post_id ); // prepares display $label = apply_filters( 'pvc_post_views_label', (function_exists( 'icl_t' ) ? icl_t( 'Post Views Counter', 'Post Views Label', $options['label'] ) : $options['label'] ), $post_id ); $icon_class = ($options['icon_class'] !== '' ? ' ' . esc_attr( $options['icon_class'] ) : ''); $icon = apply_filters( 'pvc_post_views_icon', '<span class="post-views-icon dashicons ' . $icon_class . '"></span>', $post_id ); $html = apply_filters( 'pvc_post_views_html', '<div class="post-views post-' . $post_id . ' entry-meta"> ' . ($options['display_style']['icon'] && $icon_class !== '' ? $icon : '') . ' ' . ($options['display_style']['text'] ? '<span class="post-views-label">' . $label . ' </span>' : '') . ' <span class="post-views-count">' . number_format_i18n( $views ) . ' volte</span> </div>', $post_id, $views, $label, $icon ); ...
-
Un semplice if che controlli se il valore è uguale a 1 o no.
Se è uguale a uno metti
[PHP]<span class="post-views-count">' . number_format_i18n( $views ) . ' volta</span>[/PHP]
altrimenti
[PHP]<span class="post-views-count">' . number_format_i18n( $views ) . ' volte</span>[/PHP]
-
Ma come? Non riesco a incastrarlo nel mio codice.
-
[PHP]
<?php if ($views > 1) {
echo "<span class="post-views-count">' . number_format_i18n( $views ) . ' volte</span>";
} else {
echo "<span class="post-views-count">' . number_format_i18n( $views ) . ' volta</span>";
}
?>
[/PHP]Dovrebbe essere così.
-
Ho risolto così:
[PHP]$volte = (number_format_i18n($views) == 1) ? 'volta' : 'volte';
<span class="post-views-count">' . number_format_i18n( $views ) . $volte . '</span>
[/PHP]
-
@Apthu said:
Ho risolto così:
[PHP]$volte = (number_format_i18n($views) == 1) ? 'volta' : 'volte';
[/PHP]Questo è il costrutto ternario, è una semplificazione dell'if
-
Dovrebbe funzionare anche senza il secondo paio di parentesi tonde.
-
@Apthu dimentichi il caso in cui non ci fossero risultati della query?
Saluti.
-
@MenteLibera said:
@Apthu dimentichi il caso in cui non ci fossero risultati della query?
Saluti.
La query mi sembra che viene usata anche dal codice originale, vedi post #1
-
@Apthu said:
La query mi sembra che viene usata anche dal codice originale, vedi post #1
Quindi hai la certezza che per ogni condizione esista almeno un risultato?
-
Ho fatto delle prove e mi da sempre il risultato giusto. Cosa non dovrebbe funzionare? Non capisco.
-
Dire:
@Apthu said:
Ho fatto delle prove e mi da sempre il risultato giusto..
lascia intuire che le prove fatte potrebbero non ricoprire tutti i casi possibili.
Adesso prova a farne una con un errore di battitura e poi vedi quanti risultati escono.
-
Che errori di battitura dovrei fare? Io non devo digitare niente, è il codice che mette a video automaticamente i click.