Что делает 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-классом ссылки.