sanitize_title()

Очищает строку и создает "слаг", который может использоваться в URL или атрибутах HTML
Функция WordPress
INT 1.0.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Преобразование строки в URL-адрес
  4. Удаление специальных символов из строки
  5. Замена пробелов и знаков препинания в строке
  6. Применение функции sanitize_title() при сохранении данных
  7. Создание уникального идентификатора на основе строки
  8. Вопросы и ответы
  9. Как использовать функцию sanitize_title() для создания читаемых URL?
  10. Как обрабатывать пустую строку в функции sanitize_title()?
  11. Какие символы будут удалены при использовании функции sanitize_title()?
  12. Как использовать функцию sanitize_title() для создания уникальных идентификаторов?
  13. Какие альтернативы функции sanitize_title() существуют в WordPress?
  14. Какие проблемы могут возникнуть при использовании функции sanitize_title()?
  15. Какие контексты можно указать в функции sanitize_title() и как они влияют на результат?
  16. Какие дополнительные настройки можно использовать с функцией sanitize_title() для более точной обработки строк?
  17. Связанные элементы

Описание функции

Функция sanitize_title() преобразует строку в URL-совместимый формат (слаг) или в HTML-атрибуты. Она удаляет все символы, которые не являются буквами, цифрами, дефисами, подчеркиваниями или пробелами. Также функция приводит все символы к нижнему регистру и заменяет пробелы на дефисы.

Использование

sanitize_title( string $title, string $fallback_title = '', string $context = 'save' ): string

Функция sanitize_title() принимает три параметра: $title (обязательный), $fallback_title (необязательный) и $context (необязательный). Она возвращает строку.

  • $title (строка, обязательный): Строка, которую нужно привести к URL-совместимому формату.
  • $fallback_title (строка, необязательный): Заголовок, который будет использован, если $title пуст. По умолчанию: пустая строка.
  • $context (строка, необязательный): Операция, для которой применяется преобразование строки. Когда установлено значение «save», строка проходит через функцию remove_accents(). По умолчанию: «save».

Функция возвращает преобразованную строку в URL-совместимом формате.

<?php
$title = 'Пример Заголовка';
$fallback_title = 'fallback-title';
$context = 'save';
$slug = sanitize_title( $title, $fallback_title, $context );
// Выводит: 'пример-заголовка'
echo $slug;
?>

В данном примере мы используем функцию sanitize_title() для преобразования строки $title в URL-совместимый формат. Мы также передаем значения для $fallback_title и $context. Результатом будет строка ‘пример-заголовка’, так как все символы, не являющиеся буквами, цифрами, дефисами, подчеркиваниями или пробелами, были удалены, пробелы были заменены на дефисы, и все символы были приведены к нижнему регистру.

Примеры использования

Преобразование строки в URL-адрес


$title = "Hello World!";
$slug = sanitize_title($title);
echo $slug;

Результат:

hello-world

Функция sanitize_title() преобразует строку в URL-адрес, заменяя пробелы и специальные символы на дефисы. В данном примере, строка «Hello World!» преобразуется в «hello-world».

Удаление специальных символов из строки


$title = "Hello, World!";
$slug = sanitize_title($title);
echo $slug;

Результат:

hello-world

Функция sanitize_title() также удаляет специальные символы из строки. В данном примере, символ «,» удаляется и строка «Hello, World!» преобразуется в «hello-world».

Замена пробелов и знаков препинания в строке


$title = "Hello, World!";
$slug = sanitize_title($title);
echo $slug;

Результат:

hello-world

Функция sanitize_title() также заменяет пробелы и знаки препинания на дефисы. В данном примере, пробел и знак «,» заменяются на дефисы и строка «Hello, World!» преобразуется в «hello-world».

Применение функции sanitize_title() при сохранении данных


function save_post_data($post_id) {
    $title = get_post_field('post_title', $post_id);
    $slug = sanitize_title($title);
    update_post_meta($post_id, 'slug', $slug);
}
add_action('save_post', 'save_post_data');

В данном примере функция sanitize_title() используется при сохранении данных поста. При сохранении, заголовок поста получается с помощью функции get_post_field(), затем преобразуется в URL-адрес с помощью sanitize_title() и сохраняется в метаданных поста с помощью функции update_post_meta().

Создание уникального идентификатора на основе строки


$title = "Hello World!";
$unique_id = sanitize_title($title) . '-' . uniqid();
echo $unique_id;

Результат:

hello-world-5f4dbc4b4b1f2

Функция sanitize_title() может быть использована для создания уникального идентификатора на основе строки. В данном примере, строка «Hello World!» преобразуется в «hello-world» и затем объединяется с уникальным идентификатором, созданным с помощью функции uniqid(). Результатом будет уникальный идентификатор вида «hello-world-5f4dbc4b4b1f2».

Вопросы и ответы

Как использовать функцию sanitize_title() для создания читаемых URL?

Функция sanitize_title() используется для преобразования строки в «slug», который может быть использован в URL или HTML атрибутах. Это особенно полезно при создании читаемых URL для постов, страниц и других типов записей.


$title = "Привет, мир!";
$slug = sanitize_title($title);
echo $slug;

Результат:

privet-mir

Как обрабатывать пустую строку в функции sanitize_title()?

Если передана пустая строка в качестве параметра $title, можно использовать опциональный параметр $fallback_title для указания альтернативного заголовка. Если $fallback_title не указан, то возвращается пустая строка.


$title = "";
$fallback_title = "Пустой заголовок";
$slug = sanitize_title($title, $fallback_title);
echo $slug;

Результат:

пустой-заголовок

Какие символы будут удалены при использовании функции sanitize_title()?

Функция sanitize_title() удаляет все символы, кроме букв (в нижнем регистре), цифр, дефисов и подчеркиваний. Пробелы заменяются дефисами.


$title = "Пример!@#$%^&*()";
$slug = sanitize_title($title);
echo $slug;

Результат:

primer

Как использовать функцию sanitize_title() для создания уникальных идентификаторов?

Функция sanitize_title() может быть использована для создания уникальных идентификаторов, которые могут быть использованы, например, для идентификации элементов в базе данных или в качестве идентификаторов в URL.


$title = "Уникальный заголовок";
$slug = sanitize_title($title);
$id = "post_" . $slug;
echo $id;

Результат:

post_unikalnyi-zagolovok

Какие альтернативы функции sanitize_title() существуют в WordPress?

В WordPress существуют несколько альтернативных функций для санитизации строк:

  • sanitize_title_with_dashes() — санитизирует строку, заменяя пробелы и другие символы на дефисы.
  • sanitize_file_name() — санитизирует строку, удаляя запрещенные символы для имени файла.
  • sanitize_user() — санитизирует строку, используемую в имени пользователя.

Какие проблемы могут возникнуть при использовании функции sanitize_title()?

При использовании функции sanitize_title() могут возникнуть следующие проблемы:

  • Потеря данных: если переданная строка пустая, и не указан альтернативный заголовок, функция вернет пустую строку.
  • Неправильное санитизирование: функция может не всегда санитизировать строку в соответствии с ожиданиями, особенно если используются символы, не допустимые в URL или HTML атрибутах.

Какие контексты можно указать в функции sanitize_title() и как они влияют на результат?

В функции sanitize_title() можно указать следующие контексты:

  • save — контекст сохранения, при котором строка проходит через функцию remove_accents() для удаления акцентов.

Указание контекста влияет на то, как будет обработана строка и какой результат будет возвращен.

Какие дополнительные настройки можно использовать с функцией sanitize_title() для более точной обработки строк?

Функция sanitize_title() не имеет дополнительных настроек для более точной обработки строк.

Функция sanitize_title() в WordPress предназначена для санитизации строк и преобразования их в слаги, которые могут быть использованы в URL или HTML атрибутах. При использовании этой функции могут возникнуть проблемы, такие как потеря данных или неправильное санитизирование. Для санитизации строк в WordPress также существуют альтернативные функции, такие как sanitize_title_with_dashes() и sanitize_file_name(). Указание контекста в функции sanitize_title() позволяет влиять на результат обработки строки. Дополнительные настройки для более точной обработки строк в функции sanitize_title() отсутствуют.

Связанные элементы

  • Функция wp_unique_post_slug(): генерирует уникальный слаг для записи.
  • Функция sanitize_user(): очищает имя пользователя от небезопасных символов.
  • Функция sanitize_email(): очищает email-адрес от небезопасных символов.
  • Функция sanitize_file_name(): очищает имя файла от небезопасных символов.
  • Функция sanitize_meta(): очищает значение мета-поля от небезопасных символов.
  • Функция sanitize_option(): очищает значение опции от небезопасных символов.
  • Функция sanitize_text_field(): очищает текстовое поле от небезопасных символов.
  • Функция sanitize_title_for_query(): очищает строку для использования в запросе к базе данных.
  • Функция sanitize_title_with_dashes(): очищает строку и заменяет пробелы на дефисы.
Обсуждение