# WP_GET_SHORTLINK() │ WP 3.0.0
Функция wp_get_shortlink()
возвращает короткую ссылку для записи, страницы, вложения или сайта.
Эта функция создана для того, чтобы предоставить тег короткой ссылки, который могут использовать все темы и плагины. Плагину необходимо выполнить определенные действия, чтобы предоставить настоящие короткие ссылки. По умолчанию поддержка коротких ссылок ограничена предоставлением ссылок в формате ?p=
для записей. Плагины могут «перебить» эту функцию, используя фильтр pre_get_shortlink
, или модифицировать вывод, используя фильтр get_shortlink
.
**Используется в:**
- wp_shortlink_wp_head()
- wp_shortlink_header()
- the_shortlink()
## Хуки функции
- pre_get_shortlink
- get_shortlink
## Возвращает
Строку. Короткая ссылка или пустую строку, если короткой ссылки не существует для запрашиваемого ресурса или если короткие ссылки не включены.
## Применение
Функция вызывается следующим образом:
```php
wp_get_shortlink( $id, $context, $allow_slugs );
Параметры
-
$id (int): ID записи или сайта. По умолчанию: 0, что означает текущую запись или сайт.
-
$context (string): Задает, является ли ID 'site' ID, 'post' ID или 'media' ID. Если 'post', используется тип записи для проверки. Если 'query', текущий запрос проверяется для определения ID и контекста. По умолчанию: 'post'.
-
$allow_slugs (true|false): Указывает, разрешать ли использование слага записи в короткой ссылке. Это зависит от плагина, как и будет ли это учтено. По умолчанию: true.
Примеры
Пример 1: Отображение короткой ссылки на текущую запись
echo 'Короткая ссылка: '. wp_get_shortlink();
// Выход: Короткая ссылка: http://example.com/?p=1234
Пример 2: Удаление короткой ссылки из HTML
Этот пример показывает, как удалить короткую ссылку из части
документа и из заголовков ответа сервера, где тоже добавляется короткая ссылка:remove_action( 'wp_head', 'wp_shortlink_wp_head' );
remove_action( 'template_redirect', 'wp_shortlink_header', 11 );
Изменения
С версии 3.0.0.
Код функции
Код функции wp_get_shortlink
находится в файле wp-includes/link-template.php
.
function wp_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) {
$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 = '';
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 );
}
}
return apply_filters( 'get_shortlink', $shortlink, $id, $context, $allow_slugs );
}
Эта функция позволяет легко создавать короткие ссылки на записи и страницы вашего сайта на WordPress, что полезно для упрощения ссылок и улучшения их читаемости. Обратите внимание, что возможность добавления слагов зависит от конк��етной реализации плагина.