# wp_get_shortlink()

URL: https://chugunov.pro/api-wordpress/functions/wp_get_shortlink/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 3.0.0.

## Сигнатура

```php
wp_get_shortlink( int $id, string $context = 'post', bool $allow_slugs = true ): string
```

## Описание

Эта функция существует для того, чтобы предоставить тег короткой ссылки, на который могут ориентироваться все темы и плагины.
Чтобы предоставить реальные короткие ссылки, плагин должен подключиться к соответствующему хуку. Встроенная поддержка коротких ссылок ограничивается предоставлением ссылок вида ?p= для записей. Плагины могут прервать выполнение этой функции через фильтр «pre_get_shortlink» или отфильтровать её вывод через фильтр «get_shortlink».

## Параметры

- `$id` `int` — необязательный. ID записи или сайта. Значение по умолчанию 0, что означает текущую запись или сайт.
- `$context` `string` — необязательный, по умолчанию `'post'`. Является ли ID идентификатором 'site', 'post' или 'media'. Если 'post', учитывается post_type записи. Если 'query', для определения ID и контекста используется текущий запрос. Значение по умолчанию 'post'.
- `$allow_slugs` `bool` — необязательный, по умолчанию `true`. Разрешать ли слаги записей в короткой ссылке. Как и стоит ли это учитывать, решает сам плагин.

## Возвращаемое значение

`string`

## Исходный код

Файл: `wp-includes/link-template.php:4153`

```php
function wp_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) {
	/**
	 * Filters whether to preempt generating a shortlink for the given post.
	 *
	 * Returning a value other than false from the filter will short-circuit
	 * the shortlink generation process, returning that value instead.
	 *
	 * @since 3.0.0
	 *
	 * @param false|string $return      Short-circuit return value. Either false or a URL string.
	 * @param int          $id          Post ID, or 0 for the current post.
	 * @param string       $context     The context for the link. One of 'post' or 'query',
	 * @param bool         $allow_slugs Whether to allow post slugs in the shortlink.
	 */
	$shortlink = apply_filters( 'pre_get_shortlink', false, $id, $context, $allow_slugs );

	if ( false !== $shortlink ) {
		return $shortlink;
	}

	$post_id = 0;
	if ( 'query' === $context && is_singular() ) {
		$post_id = get_queried_object_id();
		$post    = get_post( $post_id );
	} elseif ( 'post' === $context ) {
		$post = get_post( $id );
		if ( ! empty( $post->ID ) ) {
			$post_id = $post->ID;
		}
	}

	$shortlink = '';

	// Return `?p=` link for all public post types.
	if ( ! empty( $post_id ) ) {
		$post_type = get_post_type_object( $post->post_type );

		if ( 'page' === $post->post_type
			&& 'page' === get_option( 'show_on_front' ) && (int) get_option( 'page_on_front' ) === $post->ID
		) {
			$shortlink = home_url( '/' );
		} elseif ( $post_type && $post_type->public ) {
			$shortlink = home_url( '?p=' . $post_id );
		}
	}

	/**
	 * Filters the shortlink for a post.
	 *
	 * @since 3.0.0
	 *
	 * @param string $shortlink   Shortlink URL.
	 * @param int    $id          Post ID, or 0 for the current post.
	 * @param string $context     The context for the link. One of 'post' or 'query',
	 * @param bool   $allow_slugs Whether to allow post slugs in the shortlink. Not used by default.
	 */
	return apply_filters( 'get_shortlink', $shortlink, $id, $context, $allow_slugs );
}
```

## История изменений

- 3.0.0 — Introduced.

## Связанные

Использует: [`is_singular`](https://chugunov.pro/api-wordpress/functions/is_singular/), [`get_queried_object_id`](https://chugunov.pro/api-wordpress/functions/get_queried_object_id/), [`home_url`](https://chugunov.pro/api-wordpress/functions/home_url/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_option`](https://chugunov.pro/api-wordpress/functions/get_option/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/), [`get_post_type_object`](https://chugunov.pro/api-wordpress/functions/get_post_type_object/).
Используется в: [`wp_shortlink_wp_head`](https://chugunov.pro/api-wordpress/functions/wp_shortlink_wp_head/), [`wp_shortlink_header`](https://chugunov.pro/api-wordpress/functions/wp_shortlink_header/), [`the_shortlink`](https://chugunov.pro/api-wordpress/functions/the_shortlink/), [`wp_admin_bar_shortlink_menu`](https://chugunov.pro/api-wordpress/functions/wp_admin_bar_shortlink_menu/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_get_shortlink/
