Для изменения регистра определенных букв в WordPress есть несколько способов реализации на PHP. Рассмотрим основные методы:
1. Базовые функции PHP
Для преобразования отдельных букв можно использовать:
// Преобразуем первую букву строки
$text = 'пример текста';
$result = ucfirst($text); // Пример текста
// Преобразуем первую букву каждого слова
$result = ucwords($text); // Пример Текста
// Преобразуем конкретную позицию
function capitalizePosition($str, $pos) {
return substr($str, 0, $pos) . strtoupper(substr($str, $pos, 1)) . substr($str, $pos + 1);
}
2. Работа с UTF-8 строками
Для корректной работы с кириллицей используйте:
// Поддержка UTF-8
function mb_ucfirst($str) {
return mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1);
}
// Для первого слова в UTF-8 строке
function mb_ucwords($str) {
return mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
}
3. Где размещать код в WordPress
-
functions.php темы:
add_filter('the_title', 'custom_title_case');
function custom_title_case($title) {
return ucfirst($title);
}
-
Шаблоны темы (single.php, page.php):
<?php
$content = get_the_content();
$content = custom_capitalize($content);
echo $content;
?>
4. Создание шорткода
function custom_capitalize_shortcode($atts, $content = null) {
if ($content) {
return ucwords($content);
}
return '';
}
add_shortcode('capitalize', 'custom_capitalize_shortcode');
Использование в постах: [capitalize]ваш текст[/capitalize]
5. Обработка конкретных элементов
// Пример обработки заголовка записи
function format_custom_title($title) {
// Логика форматирования
return ucwords($title);
}
add_filter('the_title', 'format_custom_title');
Важные рекомендации
-
Всегда проверяйте работу кода на тестовой версии сайта
-
Используйте дочернюю тему для внесения изменений
-
Создавайте резервные копии файлов перед изменениями
-
Тестируйте работу с разными типами контента
-
Учитывайте SEO-аспекты при изменении регистра заголовков
Пример комплексного решения
// Функция для форматирования текста
function format_text($text, $type = 'first') {
switch ($type) {
case 'first':
return mb_ucfirst($text);
case 'words':
return mb_ucwords($text);
case 'custom':
return capitalizePosition($text, 3); // Пример для 4-й буквы
default:
return $text;
}
}
// Применение в теме
$formatted_text = format_text(get_the_title(), 'words');
Этот подход позволяет гибко настраивать форматирование текста в зависимости от ваших потребностей.