Что означает токен %1$s в WordPress
Прочитайте документацию PHP по функции sprintf().
%s— это просто заполнитель для строки%d— это просто заполнитель для числа
Пример использования sprintf выглядит следующим образом:
$variable = sprintf(
'The %s ran down the %s', // Строка с заполнителями
'dog', // Подставляется в первый %s
'street' // Подставляется во второй %s
);
В результате в переменную $variable будет записана строка:
Собака побежала по улице
Нумерация заполнителей делает код более понятным для разработчика, позволяя быстро определить, какая строка куда подставляется. Это также позволяет повторно использовать строки. Рассмотрим другой пример с нумерованными заполнителями:
$variable = sprintf(
'The %1$s ran down the %2$s. The %2$s was made of %3$s', // Строка с заполнителями
'dog', // Всегда будет использоваться в %1$s
'street', // Всегда будет использоваться в %2$s
'gravel' // Всегда будет использоваться в %3$s
);
В результате в переменную $variable будет записана строка:
Собака побежала по улице. Улица была сделана из гравия
Наконец, функция __() позволяет переводить передаваемые ей строки. Передавая заполнители в __(), а затем всю строку в sprintf(), мы можем переводить всё, что передаётся в функцию перевода, что делает наши строки и приложение более динамичными.
Это не особенность WordPress, а особенность PHP. %1$s, %2$s и т.д. являются плейсхолдерами для переменных в форматированной строке, возвращаемой функцией sprintf() (или выводимой функцией printf()).
1$ означает, что это первая переменная, 2$ - вторая, и так далее. Буква s указывает, что это переменная типа строка. Существуют и другие варианты (например, d обозначает целое число).
В вашем примере приведена неполная конструкция: полностью она, скорее всего, выглядит так:
sprintf( __( '%1$s устарела. Вместо неё используйте %2$s.' ),
$string_1,
$string_2 );