WordPress Version: 6.3
/**
* Updates or inserts a link using values provided in $_POST.
*
* @since 2.0.0
*
* @param int $link_id Optional. ID of the link to edit. Default 0.
* @return int|WP_Error Value 0 or WP_Error on failure. The link ID on success.
*/
function edit_link($link_id = 0)
{
if (!current_user_can('manage_links')) {
wp_die('<h1>' . __('You need a higher level of permission.') . '</h1>' . '<p>' . __('Sorry, you are not allowed to edit the links for this site.') . '</p>', 403);
}
$_POST['link_url'] = esc_url($_POST['link_url']);
$_POST['link_name'] = esc_html($_POST['link_name']);
$_POST['link_image'] = esc_html($_POST['link_image']);
$_POST['link_rss'] = esc_url($_POST['link_rss']);
if (!isset($_POST['link_visible']) || 'N' !== $_POST['link_visible']) {
$_POST['link_visible'] = 'Y';
}
if (!empty($link_id)) {
$_POST['link_id'] = $link_id;
return wp_update_link($_POST);
} else {
return wp_insert_link($_POST);
}
}