WordPress Version: 5.6
/**
* Updates a link in the database.
*
* @since 2.0.0
*
* @param array $linkdata Link data to update. See wp_insert_link() for accepted arguments.
* @return int|WP_Error Value 0 or WP_Error on failure. The updated link ID on success.
*/
function wp_update_link($linkdata)
{
$link_id = (int) $linkdata['link_id'];
$link = get_bookmark($link_id, ARRAY_A);
// Escape data pulled from DB.
$link = wp_slash($link);
// Passed link category list overwrites existing category list if not empty.
if (isset($linkdata['link_category']) && is_array($linkdata['link_category']) && count($linkdata['link_category']) > 0) {
$link_cats = $linkdata['link_category'];
} else {
$link_cats = $link['link_category'];
}
// Merge old and new fields with new fields overwriting old ones.
$linkdata = array_merge($link, $linkdata);
$linkdata['link_category'] = $link_cats;
return wp_insert_link($linkdata);
}