WP_GET_SHORTLINK() │ WP 3.0.0: функция wp_get_shortlink() для создания коротких ссылок на WordPress

# 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, что полезно для упрощения ссылок и улучшения их читаемости. Обратите внимание, что возможность добавления слагов зависит от конк��етной реализации плагина.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *