WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

user_trailingslashitхук-фильтрWP 2.2.0

Позволяет удалить/добавить слэш на конце строки (/) у ссылок (URL), обрабатываемых функцией user_trailingslashit().

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

add_filter( 'user_trailingslashit', 'wp_kama_user_trailingslashit_filter', 10, 2 );

/**
 * Function for `user_trailingslashit` filter-hook.
 * 
 * @param string $url         URL with or without a trailing slash.
 * @param string $type_of_url The type of URL being considered. Accepts 'single', 'single_trackback', 'single_feed', 'single_paged', 'commentpaged', 'paged', 'home', 'feed', 'category', 'page', 'year', 'month', 'day', 'post_type_archive'.
 *
 * @return string
 */
function wp_kama_user_trailingslashit_filter( $url, $type_of_url ){

	// filter...
	return $url;
}
$string(строка)
URL с или без закрывающего слэша (/).
$type_of_url(строка)

Тип URL, который обрабатывается. Может быть:

single
single_trackback
single_feed
single_paged
commentpaged
paged
home
feed
category
page
year
month
day
post_type_archive

Примеры

0

#1 Как удалить конечный слэш у страниц (записей типа page)

Допустим мы создали пользовательский тип записи, настроили в нем slug, но слеш в конце ссылки на статью не убирается, например: example.com/post_pro_kenguru/.

Наличие слэша в конце определяется главным правилом ЧПУ в настройках, если там есть слэш в конце, то он автоматом есть для всех типов записей. Это поведение можно изменить через этот хук:

Этот пример показывает как удалить слэш у записей типа page. По аналогии можно сделать с любым типом записи:

// Удалим слэш на конце, если нужно. Если слэш есть в структуре ЧПУ, то он будет добавляться и к постоянным страницам.
add_filter( 'user_trailingslashit', 'no_page_slash', 70, 2 );

function no_page_slash( $string, $type ){
   global $wp_rewrite;

	if( 'page' === $type && $wp_rewrite->using_permalinks() && $wp_rewrite->use_trailing_slashes )
		$string = untrailingslashit( $string );

   return $string;
}

Для другого типа записи нужно нужно заменить 'page' === $type на название вашего типа записи.

Список изменений

С версии 2.2.0 Введена.

Где вызывается хук

user_trailingslashit()
user_trailingslashit
wp-includes/link-template.php 65
return apply_filters( 'user_trailingslashit', $url, $type_of_url );

Где используется хук в WordPress

Использование не найдено.
4 комментария
    Войти