WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

user_trailingslashit() WP 2.2

Добавляет или удаляет конечный слэш в переданном УРЛ. Зависит от наличия конечного слэша в ЧПУ.

Функция проверяет слэш в конце установленной структуры ЧПУ и если он там есть, то к переданной строке в конец также будет добавлен слэш. Если в структуре ЧПУ слэша нет, то из $string конечный слэш будет удален.

Является основой для: get_comments_pagenum_link()
Работает на основе: trailingslashit(), untrailingslashit()
✈ 1 раз = 0.00005с = очень быстро | 50000 раз = 0.076с = скорость света
Хуки из функции:
Возвращает

Строку. Обработанную строку, со слэшем на конце или без него.stripped.

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

user_trailingslashit( $string, $type_of_url );
$string(строка) (обязательный)
URL со слэшем на конце или без него, который нужно обработать.
$type_of_url(строка)

Тип УРЛ который рассматривается. Параметр передается в хук 'user_trailingslashit', чтобы отделить тип передаваемой ссылки при использовании хука. Известные типы:

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

По умолчанию: ''

Примеры

#1 Как удаляется или добавляется слэш

Допустим, у нас есть УРЛ 'http://site.ru/foo/'. Давайте посмотрим как отработает функция, в зависимости от установленной структуры ЧПУ (играет значение конечный слэш):

$url = 'http://site.ru/foo/';

// ЧПУ: /%postname%
$url = user_trailingslashit( $url ); // получим: http://site.ru/foo

// ЧПУ: /%postname%/
$url = user_trailingslashit( $url ); // получим: http://site.ru/foo/

Код user_trailingslashit: wp-includes/link-template.php VER 5.0

<?php
function user_trailingslashit($string, $type_of_url = '') {
	global $wp_rewrite;
	if ( $wp_rewrite->use_trailing_slashes )
		$string = trailingslashit($string);
	else
		$string = untrailingslashit($string);

	/**
	 * Filters the trailing-slashed string, depending on whether the site is set to use trailing slashes.
	 *
	 * @since 2.2.0
	 *
	 * @param string $string      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 apply_filters( 'user_trailingslashit', $string, $type_of_url );
}

Cвязанные функции

Из раздела: Форматирование

3 коммента
  • Василий cайт: infosay.ru

    Приветствую. Может я чего то не понимаю или не так делаю, но! Для того, чтобы добавить или убрать слэш достаточно поменять строки местами в файле link-template.php:
    $string = trailingslashit($string);
    $string = untrailingslashit($string);
    Все вродибы отлично работает, только вот каждый раз при обновлении WordPress все возвращается "на круги своя".

    Так как же убрать слэш рас и навсегда, чтобы он не появлялся опять, при обновлении WordPress?

  • Добрый день !

    Та же проблема со слешем

    Как убрть вывод слеша на конце адреса в пагинации ?

    Вставляю код приведённый выше не помогает.

    Меняю местами
    $string = trailingslashit($string);
    $string = untrailingslashit($string);

    нет результата.

    Проблема заключается в том, что когда находишься на второй, третей странице пагинации
    сайт.ру/название рубрики/page/3

    ссылка на первую страницу имеет слеш на конце

    сайт.ру/название рубрики/

    есть ли какое либо решение для вставки в functions.php ?

    • Justin

      По дефолту должны быть либо везде слешы на конце и в категории и в пагинации, если ничего не меняли в постоянных ссылка в настроках CMS, либо их нет нигде, если для записи у вас используется %postname%.html, к примеру, тогда слеш в конце везде сам убирается.

      А если у вас в категориях есть слеши, а в пагинации нет, то значит где-то уже были правки - в functions.php или в плагинах. А исходный код, как в примрере с link-template.php, вообще трогать никогда не советую.

Здравствуйте, !     Войти . Зарегистрироваться