Функция edit_post_link()
в WordPress используется для вывода ссылки, которая позволяет пользователям с соответствующими правами редактировать пост прямо с фронтенда сайта. Эта функция особенно полезна, когда нужно предоставить администраторам или редакторам удобную ссылку для перехода в интерфейс редактирования без необходимости идти в админку WordPress.
Синтаксис
edit_post_link(
string $link = null,
string $before = '',
string $after = '',
int|WP_Post $id = 0,
string $class = ''
);
Пример использования
В типичном шаблоне WordPress (например, в файле single.php
или page.php
) вы можете добавить ссылку на редактирование поста таким образом:
<?php
edit_post_link(
'Редактировать этот пост', // Текст ссылки
'<p>', // HTML перед ссылкой
'</p>' // HTML после ссылки
);
?>
Этот код создаст ссылку с текстом «Редактировать этот пост», которая будет заключена в теги абзаца <p>
.
Полный пример с дополнительным классом
Вы также можете добавить CSS-класс к ссылке для стилизации:
<?php
edit_post_link(
'Изменить', // Текст ссылки
'<span>', // HTML перед ссылкой
'</span>', // HTML после ссылки
0, // Использовать текущий пост
'custom-edit-link' // Дополнительный класс
);
?>
Этот код создаст ссылку с текстом «Изменить», обернутую в теги <span>
, и добавит CSS-класс custom-edit-link
.
Условия для вывода ссылки
Важно отметить, что ссылка будет отображаться только для тех пользователей, которые имеют права на редактирование данного поста. Обычно это администраторы и редакторы. Функция проверяет права пользователя с помощью функции current_user_can( 'edit_post', $post_id )
.
Чтобы убедиться, что ссылка отображается только для авторизованных пользователей с правами редактирования, можно обернуть вызов edit_post_link()
в условие:
<?php
if ( current_user_can( 'edit_post', get_the_ID() ) ) {
edit_post_link( 'Редактировать', '<p>', '</p>' );
}
?>
Применение в шаблонах
Функцию можно использовать практически в любом шаблоне WordPress. Она особенно полезна в следующих ситуациях:
- Внутри циклов
The Loop
, чтобы предоставить ссылку для редактирования постов на страницах архивов, категорий или меток. - На страницах отдельных записей (single post) или страниц (page).
- В пользовательских типах записей, если пользователи должны иметь возможность редактировать контент с фронтенда.
Пример для использования в цикле:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php edit_post_link( 'Редактировать', '<p>', '</p>' ); ?>
<?php endwhile; endif; ?>
Функция edit_post_link()
— это удобный способ добавить ссылку на редактирование постов или страниц прямо на сайт. Это помогает улучшить UX для администраторов и редакторов, поскольку им не нужно каждый раз переходить в админку для редактирования контента. С помощью этой функции можно легко добавить кастомные ссылки с любым стилем и оформлением.