Функция edit_post_link(): Как использовать ссылку на редактирование поста в WordPress

Функция edit_post_link() в WordPress используется для вывода ссылки, которая позволяет пользователям с соответствующими правами редактировать пост прямо с фронтенда сайта. Эта функция особенно полезна, когда нужно предоставить администраторам или редакторам удобную ссылку для перехода в интерфейс редактирования без необходимости идти в админку WordPress.

Синтаксис

edit_post_link( 
    string $link = null, 
    string $before = '', 
    string $after = '', 
    int|WP_Post $id = 0, 
    string $class = '' 
);

  • $link (строка): Текст ссылки, который будет отображаться. Если параметр не указан, используется значение по умолчанию — «Edit» (Редактировать).
  • $before (строка): HTML или текст, который будет отображаться перед ссылкой.
  • $after (строка): HTML или текст, который будет отображаться после ссылки.
  • $id (int|WP_Post): ID поста или объект поста, для которого нужно вывести ссылку. Если не указан, используется текущий пост в цикле.
  • $class (строка): Дополнительный CSS-класс для ссылки.
  • Пример использования

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

    Почитаем еще?: