The edit_post_link WordPress PHP filter allows you to modify the post edit link anchor tag.
Usage
add_filter('edit_post_link', 'your_custom_function', 10, 3);
function your_custom_function($link, $post_id, $text) {
// your custom code here
return $link;
}
Parameters
$link(string) – The anchor tag for the edit link.$post_id(int) – The post ID.$text(string) – The anchor text.
More information
See WordPress Developer Resources: edit_post_link
Examples
Change the edit link text
Change the edit link text to “Edit this post” for all posts.
add_filter('edit_post_link', 'change_edit_link_text', 10, 3);
function change_edit_link_text($link, $post_id, $text) {
$text = 'Edit this post';
$link = '<a class="post-edit-link" href="' . get_edit_post_link($post_id) . '">' . $text . '</a>';
return $link;
}
Add a custom class to the edit link
Add a custom class “my-custom-class” to the edit link.
add_filter('edit_post_link', 'add_custom_class', 10, 3);
function add_custom_class($link, $post_id, $text) {
$link = str_replace('class="', 'class="my-custom-class ', $link);
return $link;
}
Hide the edit link for specific post types
Hide the edit link for a custom post type called “my_custom_post_type”.
add_filter('edit_post_link', 'hide_edit_link_for_custom_post_type', 10, 3);
function hide_edit_link_for_custom_post_type($link, $post_id, $text) {
if (get_post_type($post_id) == 'my_custom_post_type') {
return '';
}
return $link;
}
Change the edit link URL
Change the edit link URL to a custom URL.
add_filter('edit_post_link', 'change_edit_link_url', 10, 3);
function change_edit_link_url($link, $post_id, $text) {
$custom_url = 'https://example.com/custom-url/';
$link = '<a class="post-edit-link" href="' . $custom_url . '">' . $text . '</a>';
return $link;
}
Display the edit link only for logged-in users
Show the edit link only to logged-in users.
add_filter('edit_post_link', 'show_edit_link_for_logged_in_users', 10, 3);
function show_edit_link_for_logged_in_users($link, $post_id, $text) {
if (is_user_logged_in()) {
return $link;
}
return '';
}