Функция user_trailingslashit()
в WordPress автоматически добавляет или удаляет завершающий слэш в URL в зависимости от настроек структуры постоянных ссылок. Это особенно полезно для поддержания единообразия URL, избегая лишних переадресаций и ошибок при работе с различными типами ссылок.
user_trailingslashit( string $url, string $type_of_url = ” ): string
Параметры
- $url
- (string, обязательный) URL, к которому нужно добавить или из которого нужно удалить завершающий слэш.
- $type_of_url
- (string, необязательный) Тип URL, который обрабатывается (например,
single
,category
,page
и т. д.), что используется в фильтреuser_trailingslashit
. По умолчанию пусто.
- (string, необязательный) Тип URL, который обрабатывается (например,
Возвращаемое значение
Возвращает URL с добавленным или удаленным завершающим слэшем в зависимости от текущих настроек постоянных ссылок.
Пример 1: Добавление или удаление завершающего слэша в зависимости от структуры ссылок
Рассмотрим, как user_trailingslashit()
изменяет URL в зависимости от настройки структуры постоянных ссылок.
$url = 'http://example.com/test-page';
// Если структура ссылок настроена как /%postname%
echo user_trailingslashit( $url );
// Вывод: http://example.com/test-page
// Если структура ссылок настроена как /%postname%/
echo user_trailingslashit( $url );
// Вывод: http://example.com/test-page/
Пример 2: Удаление части URL и добавление слэша для категорий
В этом примере мы удалим часть URL, связанную с категорией, и добавим завершающий слэш для стандартизации ссылок на категории.
function custom_remove_category_base( $url, $type ) {
if ( 'category' === $type && strpos( $url, '/category/' ) !== false ) {
$url = str_replace( '/category/', '/', $url );
return trailingslashit( $url );
}
return $url;
}
add_filter( 'user_trailingslashit', 'custom_remove_category_base', 10, 2 );
// Пример использования
echo user_trailingslashit( 'http://example.com/category/my-category', 'category' );
// Вывод: http://example.com/my-category/
Пример 3: Работа с URL для типа записи
Допустим, вы хотите использовать user_trailingslashit()
для страниц архива пользовательского типа записи. Это может быть полезно, чтобы обеспечить единообразие ссылок на архивы, добавляя завершающий слэш.
$url = 'http://example.com/products';
echo user_trailingslashit( $url, 'post_type_archive' );
// В зависимости от структуры ссылок, результат будет:
// http://example.com/products или http://example.com/products/
Пример 4: Применение функции для URL с типом page
В данном примере функция используется для URL страницы, чтобы гарантировать наличие слэша в конце, если это требуется настройками.
$page_url = 'http://example.com/about';
echo user_trailingslashit( $page_url, 'page' );
// Вывод будет зависеть от настроек структуры ссылок:
// http://example.com/about или http://example.com/about/
Полезные советы по использованию user_trailingslashit()
- Оптимизация ссылок: Использование функции может предотвратить излишние редиректы, что улучшит SEO и производительность сайта.
- Фильтр: Благодаря фильтру
user_trailingslashit
, функцию можно легко адаптировать под специфические требования, изменяя поведение для разных типов URL. - Поддержка стандартов: Использование слэшей в URL делает ссылки более предсказуемыми и стандартизированными, что положительно сказывается на пользовательском опыте.
Заключение
Функция user_trailingslashit()
является удобным инструментом в WordPress для обработки URL, обеспечивая корректную работу сайта независимо от выбранной структуры ссылок.