The get_bookmarks WordPress PHP filter allows you to modify the list of bookmarks returned by WordPress.
Usage
add_filter('get_bookmarks', 'your_custom_function', 10, 2);
function your_custom_function($bookmarks, $parsed_args) {
// your custom code here
return $bookmarks;
}
Parameters
$bookmarks (array)– The list of cached bookmarks.$parsed_args (array)– An array of bookmark query arguments.
More information
See WordPress Developer Resources: get_bookmarks
Examples
Remove a specific bookmark by ID
Remove a specific bookmark from the list by its ID.
add_filter('get_bookmarks', 'remove_specific_bookmark', 10, 2);
function remove_specific_bookmark($bookmarks, $parsed_args) {
$bookmark_to_remove = 42; // The ID of the bookmark you want to remove
foreach ($bookmarks as $key => $bookmark) {
if ($bookmark->link_id == $bookmark_to_remove) {
unset($bookmarks[$key]);
}
}
return $bookmarks;
}
Order bookmarks by link name
Order the bookmarks list by link name alphabetically.
add_filter('get_bookmarks', 'order_bookmarks_by_name', 10, 2);
function order_bookmarks_by_name($bookmarks, $parsed_args) {
usort($bookmarks, function($a, $b) {
return strcmp($a->link_name, $b->link_name);
});
return $bookmarks;
}
Filter bookmarks by target
Filter the bookmarks list to only display bookmarks with a specific target attribute.
add_filter('get_bookmarks', 'filter_bookmarks_by_target', 10, 2);
function filter_bookmarks_by_target($bookmarks, $parsed_args) {
$target_filter = '_blank'; // The target attribute to filter by
return array_filter($bookmarks, function($bookmark) use ($target_filter) {
return $bookmark->link_target == $target_filter;
});
}
Add a custom attribute to bookmarks
Add a custom data-* attribute to the bookmarks list.
add_filter('get_bookmarks', 'add_custom_attribute_to_bookmarks', 10, 2);
function add_custom_attribute_to_bookmarks($bookmarks, $parsed_args) {
foreach ($bookmarks as $bookmark) {
$bookmark->link_custom_attribute = 'custom_value';
}
return $bookmarks;
}
Limit the number of bookmarks displayed
Limit the number of bookmarks displayed to a specific count.
add_filter('get_bookmarks', 'limit_bookmarks_count', 10, 2);
function limit_bookmarks_count($bookmarks, $parsed_args) {
$limit = 5; // The maximum number of bookmarks to display
return array_slice($bookmarks, 0, $limit);
}