edit_post_link

Позволяет изменить якорную метку ссылки на редактирование записи
Хук WordPress
INT 2.3.0
WordPress Icon

Описание хука

Хук «edit_post_link» позволяет определить и изменить HTML-код ссылки для редактирования записи. Этот хук вызывается внутри функции «edit_post_link()», которая отображает ссылку на редактирование записи на странице ее просмотра.

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

apply_filters( 'edit_post_link', string $link, int $post_id, string $text )

Функция «apply_filters()» позволяет применять фильтры к значению хука. В данном случае, фильтр «edit_post_link» применяется к HTML-коду ссылки для редактирования записи.

  • $link (string) — HTML-код ссылки для редактирования записи.
  • $post_id (int) — ID записи, которую нужно отредактировать.
  • $text (string) — Текст ссылки для редактирования записи.
<?php
/**
 * Функция-обработчик для хука "edit_post_link".
 * Изменяет HTML-код ссылки для редактирования записи.
 *
 * @param string $link HTML-код ссылки для редактирования записи.
 * @param int $post_id ID записи, которую нужно отредактировать.
 * @param string $text Текст ссылки для редактирования записи.
 * @return string Измененный HTML-код ссылки для редактирования записи.
 */
function custom_edit_post_link( $link, $post_id, $text ) {
    // Изменяем текст ссылки на "Редактировать запись"
    $text = 'Редактировать запись';
    
    // Добавляем класс "edit-link" к ссылке
    $link = str_replace( '<a ', '<a class="edit-link" ', $link );
    
    // Возвращаем измененный HTML-код ссылки
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link', 10, 3 );
?>

В приведенном примере кода определена функция «custom_edit_post_link()», которая является обработчиком для хука «edit_post_link». Внутри функции происходит изменение текста ссылки на «Редактировать запись» и добавление класса «edit-link» к ссылке. Затем измененный HTML-код ссылки возвращается.

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

Изменение текста ссылки на редактирование поста


/**
 * Изменение текста ссылки на редактирование поста.
 *
 * @param string $link Anchor tag for the edit link.
 * @param int $post_id Post ID.
 * @param string $text Anchor text.
 * @return string Modified anchor tag for the edit link.
 */
function custom_edit_post_link_text( $link, $post_id, $text ) {
    // Изменяем текст ссылки на "Редактировать пост"
    $text = 'Редактировать пост';
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_text', 10, 3 );

В данном примере мы используем хук edit_post_link для изменения текста ссылки на редактирование поста. Функция custom_edit_post_link_text принимает три параметра: $link — исходный HTML-код ссылки, $post_id — ID поста, $text — текущий текст ссылки. Внутри функции мы изменяем текст ссылки на «Редактировать пост» и возвращаем измененный HTML-код ссылки.

Добавление атрибутов к ссылке на редактирование поста


/**
 * Добавление атрибутов к ссылке на редактирование поста.
 *
 * @param string $link Anchor tag for the edit link.
 * @param int $post_id Post ID.
 * @param string $text Anchor text.
 * @return string Modified anchor tag for the edit link.
 */
function custom_edit_post_link_attributes( $link, $post_id, $text ) {
    // Добавляем атрибуты class и title к ссылке
    $link = str_replace( '<a ', '<a class="edit-link" title="Редактировать пост" ', $link );
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_attributes', 10, 3 );

В данном примере мы используем хук edit_post_link для добавления атрибутов к ссылке на редактирование поста. Функция custom_edit_post_link_attributes принимает три параметра: $link — исходный HTML-код ссылки, $post_id — ID поста, $text — текущий текст ссылки. Внутри функции мы заменяем исходные атрибуты ссылки на новые, добавляя класс «edit-link» и атрибут title со значением «Редактировать пост».

Скрытие ссылки на редактирование поста


/**
 * Скрытие ссылки на редактирование поста.
 *
 * @param string $link Anchor tag for the edit link.
 * @param int $post_id Post ID.
 * @param string $text Anchor text.
 * @return string Empty string to hide the edit link.
 */
function custom_hide_edit_post_link( $link, $post_id, $text ) {
    // Скрываем ссылку на редактирование поста
    return '';
}
add_filter( 'edit_post_link', 'custom_hide_edit_post_link', 10, 3 );

В данном примере мы используем хук edit_post_link для скрытия ссылки на редактирование поста. Функция custom_hide_edit_post_link принимает три параметра: $link — исходный HTML-код ссылки, $post_id — ID поста, $text — текущий текст ссылки. Внутри функции мы возвращаем пустую строку, чтобы скрыть ссылку на редактирование поста.

Перенаправление ссылки на редактирование поста


/**
 * Перенаправление ссылки на редактирование поста.
 *
 * @param string $link Anchor tag for the edit link.
 * @param int $post_id Post ID.
 * @param string $text Anchor text.
 * @return string Modified anchor tag for the edit link.
 */
function custom_redirect_edit_post_link( $link, $post_id, $text ) {
    // Перенаправляем ссылку на страницу редактирования поста
    $link = get_edit_post_link( $post_id, '' );
    return $link;
}
add_filter( 'edit_post_link', 'custom_redirect_edit_post_link', 10, 3 );

В данном примере мы используем хук edit_post_link для перенаправления ссылки на редактирование поста. Функция custom_redirect_edit_post_link принимает три параметра: $link — исходный HTML-код ссылки, $post_id — ID поста, $text — текущий текст ссылки. Внутри функции мы используем функцию get_edit_post_link для получения нового URL ссылки на страницу редактирования поста и возвращаем измененный HTML-код ссылки.

Изменение URL ссылки на редактирование поста


/**
 * Изменение URL ссылки на редактирование поста.
 *
 * @param string $link Anchor tag for the edit link.
 * @param int $post_id Post ID.
 * @param string $text Anchor text.
 * @return string Modified anchor tag for the edit link.
 */
function custom_change_edit_post_link_url( $link, $post_id, $text ) {
    // Изменяем URL ссылки на страницу редактирования поста
    $link = str_replace( 'example.com', 'newexample.com', $link );
    return $link;
}
add_filter( 'edit_post_link', 'custom_change_edit_post_link_url', 10, 3 );

В данном примере мы используем хук edit_post_link для изменения URL ссылки на редактирование поста. Функция custom_change_edit_post_link_url принимает три параметра: $link — исходный HTML-код ссылки, $post_id — ID поста, $text — текущий текст ссылки. Внутри функции мы заменяем часть URL ссылки на новый домен «newexample.com» с помощью функции str_replace и возвращаем измененный HTML-код ссылки.

Вопросы и ответы

Как изменить текст ссылки на редактирование записи?

Для изменения текста ссылки на редактирование записи в WordPress можно использовать хук edit_post_link. Этот хук позволяет изменить текст ссылки, который отображается пользователю.

Пример кода:

// Функция-обработчик хука
function custom_edit_post_link_text( $link, $post_id, $text ) {
    // Изменяем текст ссылки на "Редактировать запись"
    $link = str_replace( 'Edit', 'Редактировать', $link );
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_text', 10, 3 );

Как изменить классы ссылки на редактирование записи?

Для изменения классов ссылки на редактирование записи в WordPress можно использовать хук edit_post_link. Этот хук позволяет добавить или изменить классы ссылки, что позволяет стилизовать ее с помощью CSS.

Пример кода:

// Функция-обработчик хука
function custom_edit_post_link_classes( $link, $post_id, $text ) {
    // Добавляем класс "custom-link" к ссылке
    $link = str_replace( 'class="post-edit-link"', 'class="post-edit-link custom-link"', $link );
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_classes', 10, 3 );

Как изменить атрибуты ссылки на редактирование записи?

Для изменения атрибутов ссылки на редактирование записи в WordPress можно использовать хук edit_post_link. Этот хук позволяет добавить или изменить атрибуты ссылки, такие как title или rel.

Пример кода:

// Функция-обработчик хука
function custom_edit_post_link_attributes( $link, $post_id, $text ) {
    // Добавляем атрибут "title" со значением "Редактировать запись"
    $link = str_replace( 'href=', 'title="Редактировать запись" href=', $link );
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_attributes', 10, 3 );

Как добавить иконку перед ссылкой на редактирование записи?

Для добавления иконки перед ссылкой на редактирование записи в WordPress можно использовать хук edit_post_link. Этот хук позволяет добавить HTML-код иконки перед ссылкой.

Пример кода:

// Функция-обработчик хука
function custom_edit_post_link_icon( $link, $post_id, $text ) {
    // Добавляем иконку перед ссылкой
    $link = '<i class="fas fa-edit"></i> ' . $link;
    return $link;
}
add_filter( 'edit_post_link', 'custom_edit_post_link_icon', 10, 3 );

Как изменить порядок ссылки на редактирование записи?

Для изменения порядка ссылки на редактирование записи можно использовать хук edit_post_link. Этот хук позволяет изменить атрибут $link — тег ссылки на редактирование записи.

Пример кода:

function change_edit_post_link_order( $link, $post_id, $text ) {
    // Ваш код для изменения порядка ссылки
    return $link;
}
add_filter( 'edit_post_link', 'change_edit_post_link_order', 10, 3 );

Как скрыть ссылку на редактирование записи для определенных пользователей?

Для скрытия ссылки на редактирование записи для определенных пользователей можно использовать хук edit_post_link и функцию current_user_can. Функция current_user_can проверяет, имеет ли текущий пользователь определенную роль или возможность.

Пример кода:

function hide_edit_post_link_for_users( $link, $post_id, $text ) {
    if ( ! current_user_can( 'edit_posts' ) ) {
        $link = '';
    }
    return $link;
}
add_filter( 'edit_post_link', 'hide_edit_post_link_for_users', 10, 3 );

Как добавить ссылку на редактирование записи в другое место на странице?

Для добавления ссылки на редактирование записи в другое место на странице можно использовать хук edit_post_link и функцию echo. Функция echo выводит текст или переменную на экран.

Пример кода:

function add_edit_post_link_to_custom_location( $link, $post_id, $text ) {
    ob_start();
    edit_post_link( $text, '<p>', '</p>', $post_id );
    $edit_link = ob_get_clean();
    return $edit_link;
}
add_filter( 'edit_post_link', 'add_edit_post_link_to_custom_location', 10, 3 );

Как изменить стиль ссылки на редактирование записи?

Для изменения стиля ссылки на редактирование записи можно использовать хук edit_post_link и добавить класс или стили в атрибут $link.

Пример кода:

function change_edit_post_link_style( $link, $post_id, $text ) {
    $link = str_replace( 'class="post-edit-link"', 'class="post-edit-link custom-style"', $link );
    return $link;
}
add_filter( 'edit_post_link', 'change_edit_post_link_style', 10, 3 );

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

Связанные элементы

  • Функция get_edit_post_link(): возвращает ссылку на редактирование поста.
  • Функция edit_post_link(): выводит ссылку на редактирование поста.
  • Функция get_delete_post_link(): возвращает ссылку на удаление поста.
  • Функция get_sample_permalink(): возвращает пример постоянной ссылки для поста.
  • Функция get_sample_permalink_html(): выводит HTML-код примера постоянной ссылки для поста.
Обсуждение