Что делает edit_post_link()

Функция edit_post_link() выводит HTML-ссылку на страницу редактирования записи в панели администратора. Но только если у текущего пользователя есть права на редактирование этого поста. Если прав нет — функция просто ничего не выведет.

Работает исключительно внутри цикла WordPress. Под капотом использует get_edit_post_link().

Синтаксис

edit_post_link( $link, $before, $after, $id, $class );

Параметры

$link (строка) — текст ссылки. По умолчанию «Edit This».

$before (строка) — HTML-код перед ссылкой. По умолчанию пусто.

$after (строка) — HTML-код после ссылки. По умолчанию пусто.

$id (число) — ID записи. По умолчанию берётся текущий пост из цикла.

$class (строка) — CSS-класс ссылки. По умолчанию post-edit-link. Параметр появился в WordPress 4.4.

Что возвращает

Функция ничего не возвращает (null) — она сразу выводит HTML-ссылку на экран.

Примеры использования

Самый простой вариант — вызов без параметров:

<?php edit_post_link(); ?>

На выходе получится примерно такое:

<a class="post-edit-link" href="https://example.com/wp-admin/post.php?post=19&action=edit">Edit This</a>

Если хочешь изменить текст ссылки и обернуть её в тег:

<?php edit_post_link('Редактировать', '<p>', '</p>'); ?>

Исходный код функции

function edit_post_link( $text = null, $before = '', $after = '', $post = 0, $css_class = 'post-edit-link' ) {
	$post = get_post( $post );
	if ( ! $post ) {
		return;
	}
	$url = get_edit_post_link( $post->ID );
	if ( ! $url ) {
		return;
	}
	if ( null === $text ) {
		$text = __( 'Edit This' );
	}
	$link = '<a class="' . esc_attr( $css_class ) . '" href="' . esc_url( $url ) . '">' . $text . '</a>';
	echo $before . apply_filters( 'edit_post_link', $link, $post->ID, $text ) . $after;
}

История версий

Функция появилась в WordPress 1.0.0. В версии 4.4.0 добавили параметр $css_class для управления CSS-классом ссылки.

Разработка сайтов на Wordpress