Cosa rappresenta il token %1$s in WordPress
Leggi la documentazione PHP su sprintf().
%s
è semplicemente un segnaposto per una stringa%d
è semplicemente un segnaposto per un numero
Quindi un esempio di sprintf apparirebbe così:
$variable = sprintf(
'Il %s corse lungo la %s', // Stringa con segnaposto
'cane', // Inserito nel primo segnaposto %s
'strada' // Inserito nel secondo segnaposto %s
);
Che restituirà una stringa alla nostra variabile $variable
:
Il cane corse lungo la strada
Numerando i segnaposto è sia un modo amichevole per gli sviluppatori di capire rapidamente quale stringa seguente sarà posizionata dove, sia permette di riutilizzare una stringa. Facciamo un altro esempio con segnaposto numerati:
$variable = sprintf(
'Il %1$s corse lungo la %2$s. La %2$s era fatta di %3$s', // Stringa con segnaposto
'cane', // Sarà sempre usato nel segnaposto %1$s
'strada', // Sarà sempre usato nel segnaposto %2$s
'ghiaia' // Sarà sempre usato nel segnaposto %3$s
);
Che restituirà una stringa alla nostra variabile $variable
:
Il cane corse lungo la strada. La strada era fatta di ghiaia
Infine, la funzione __()
ci permette di tradurre le stringhe passate. Passando i segnaposto a __()
, e poi passando l'intera stringa a sprintf()
, possiamo tradurre qualsiasi cosa passata alla funzione di traduzione, permettendoci di rendere la nostra stringa e l'applicazione un po' più dinamiche.

Non è una cosa specifica di WordPress, è una funzionalità di PHP. %1$s
, %2$s
, ecc., sono segnaposto per variabili in una stringa formattata restituita da sprintf()
(o stampata da printf()
).
Il 1$
indica che è la prima variabile, 2$
sarebbe la seconda, e così via. La s
indica che è una variabile di tipo stringa. Esistono altre opzioni (ad esempio, d
indicherebbe un intero).
L'esempio che hai fornito è incompleto: sicuramente nella sua interezza è qualcosa del genere:
sprintf( __( '%1$s è deprecato. Usa %2$s invece.' ),
$string_1,
$string_2 );
