Вопрос или проблема
Я пытаюсь изменить текст кнопки публикации на “Сохранить”
function change_publish_button( $translation, $text ) {
if ( $text == 'Publish' )
return 'Save';
return $translation;
}
add_filter( 'gettext', 'change_publish_button', 10, 2 );
Я пытаюсь выполнить указанный код, но он не изменяет текст кнопки публикации. Можете ли вы сказать, что не так с этим кодом, или предложить новый метод? Заранее спасибо
Обновление
Я хочу изменить кнопку публикации, показанную на рисунке ниже.
Поместите следующий код в файл вашей темы functions.php и попробуйте
function change_publish_button( $translation, $text ) {
if ( $text == 'Publish...' ) // Ваш текст кнопки
$text="Save";
return $text;
}
add_filter( 'gettext', 'change_publish_button', 10, 2 );
Этот код сработал для меня
Надеюсь, это вам поможет!
Попробуйте это:
function translate_publish( $translated_text, $untranslated_text, $domain ) {
if( stripos( $untranslated_text, 'Publish' ) !== FALSE ) {
$translated_text = str_ireplace( 'Publish', 'Save', $untranslated_text ) ;
}
return $translated_text;
}
if(is_admin()){
add_filter( 'gettext', 'translate_publish', 99, 3 );
}
Ответ или решение
Для изменения текста кнопки "Опубликовать" на "Сохранить" в интерфейсе WordPress можно использовать фильтры, которые позволяют модифицировать переводы строк непосредственно в коде. Рассмотрим детально, как это сделать и какие исправления необходимы, если ваш первоначальный код не сработал.
Проблема и решение
На данный момент вы реализовали функцию, которая должна изменять текст кнопки. Однако, важно учитывать, что текст кнопки "Опубликовать" может быть представлен различными строками в зависимости от контекста. Например, он может быть в форме "Опубликовать" или "Опубликовать…" (с многоточием).
Исправленный код
Вот скорректированный вариант функции на PHP, который учитывает разные варианты текста кнопки. Обязательно добавьте этот код в файл functions.php
вашей темы:
function change_publish_button( $translation, $text ) {
// Проверка текста на совпадение с одним из возможных вариантов.
if ( trim($text) === 'Опубликовать' || trim($text) === 'Опубликовать...' ) {
return 'Сохранить'; // Возвращаем новый текст кнопки.
}
return $translation; // Возвращаем исходный текст, если изменения не требуются.
}
// Применяем фильтр для текста в админке.
add_filter( 'gettext', 'change_publish_button', 10, 2 );
Пояснения к коду
-
Функция
change_publish_button
: Эта функция принимает два параметра —$translation
(переведённый текст) и$text
(исходный текст). Если исходный текст кнопки совпадает с "Опубликовать" или "Опубликовать…", то функция возвращает "Сохранить". -
Фильтр
gettext
: Этот фильтр позволяет изменять тексты на сайте. Конструкцияadd_filter
добавляет нашу функцию в поток обработки текста, с приоритетом 10. -
Использование
trim()
: Эта функция удаляет лишние пробелы по краям строки, что помогает избежать ошибок при сравнении строк.
Причины, почему код может не работать
- Неверный файл: Убедитесь, что вы добавили код именно в файл
functions.php
текущей активной темы. - Текст может отличаться: Если ваше окружение или кастомизация изменили текст кнопки, попробуйте использовать функцию
stripos
, чтобы сделать сравнение нечувствительным к регистру. - Кэш: Если на сайте используется кэширование, оно может мешать вашему коду. Попробуйте очистить кэш после внесения изменений.
Заключение
Изменение текста кнопки "Опубликовать" на "Сохранить" в WordPress — это задача, которую можно решить с помощью пользовательского кода. Убедитесь, что вы использовали актуальные тексты и корректно применили функцию фильтрации. Если вы столкнётесь с дальнейшими проблемами, проверьте наличие активных плагинов, которые могут влиять на работу фильтров или текстов в админ-панели.