WordPress как на ладони

the_shortlink()WP 3.0.0

Выводит короткую ссылку текущей записи, например: /?p=1234.

Этот Тег шаблона выводит текст-ссылку, которая ведет на текущий пост, но в УРЛе ссылки используется короткая ссылка вида: /?p=1234.

Такие ссылки логично использовать для сайтов где используются ЧПУ (человеко-понятные УРЛы).

Если нужно получить именно короткий УРЛ, то используйте функцию: wp_get_shortlink( $post->ID ).

Даже если у вас на сайте включены ЧПУ такие коротки ссылки с других сайтов на ваш считаются, поисковыми машинами, такими же как и обычные ссылки, потому что короткие ссылки используют 301 редирект на реальную ссылку.

Работает на основе: wp_get_shortlink()
1 раз — 0.001029 сек (очень медленно) | 50000 раз — 4.65 сек (быстро) | PHP 7.1.2, WP 4.7.3
Хуки из функции

Возвращает

null. html тег A - ссылку на текущий пост.

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

<?php the_shortlink( $text, $title, $before, $after ); ?>
$text(строка)
Текст ссылки.
По умолчанию: 'Это короткая ссылка.' ('This is the short link.')
$title(строка)
Текст для атрибута title у тега
По умолчанию: Заголовок записи
$before(строка)
Текст перед ссылкой.
По умолчанию: ''
$after(строка)
Текст после ссылки.
По умолчанию: ''

Примеры

0

#1 Выведем короткую ссылку с текстом "Это короткая ссылка":

<?php the_shortlink(); ?>

Получим:

<a rel="shortlink" href="http://example.com/?p=1234" title="заголовок записи" >Это короткая ссылка</a>
0

#2 Выведем ссылку внутри html тегов

Теги будут появляться только когда выводится короткая ссылка:

<?php the_shortlink('Короткая ссылка', null, '<div class="shortlink'>", '</div>'); ?>

Получим:

<div class='shortlink'><a rel="shortlink" href="http://example.com/?p=1234" title="заголовок записи" >Короткая ссылка</a></div>

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

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

Код the_shortlink() WP 6.5.2

function the_shortlink( $text = '', $title = '', $before = '', $after = '' ) {
	$post = get_post();

	if ( empty( $text ) ) {
		$text = __( 'This is the short link.' );
	}

	if ( empty( $title ) ) {
		$title = the_title_attribute( array( 'echo' => false ) );
	}

	$shortlink = wp_get_shortlink( $post->ID );

	if ( ! empty( $shortlink ) ) {
		$link = '<a rel="shortlink" href="' . esc_url( $shortlink ) . '" title="' . $title . '">' . $text . '</a>';

		/**
		 * Filters the short link anchor tag for a post.
		 *
		 * @since 3.0.0
		 *
		 * @param string $link      Shortlink anchor tag.
		 * @param string $shortlink Shortlink URL.
		 * @param string $text      Shortlink's text.
		 * @param string $title     Shortlink's title attribute.
		 */
		$link = apply_filters( 'the_shortlink', $link, $shortlink, $text, $title );
		echo $before, $link, $after;
	}
}
2 комментария
    Войти