get_links

The timeline below displays how wordpress function get_links has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.3

/**
 * Gets the links associated with category by ID.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int    $category         Optional. The category to use. If no category supplied uses all.
 *                                 Default 0.
 * @param string $before           Optional. The HTML to output before the link. Default empty.
 * @param string $after            Optional. The HTML to output after the link. Default '<br />'.
 * @param string $between          Optional. The HTML to output between the link/image and its description.
 *                                 Not used if no image or $show_images is true. Default ' '.
 * @param bool   $show_images      Optional. Whether to show images (if defined). Default true.
 * @param string $orderby          Optional. The order to output the links. E.g. 'id', 'name', 'url',
 *                                 'description', 'rating', or 'owner'. Default 'name'.
 *                                 If you start the name with an underscore, the order will be reversed.
 *                                 Specifying 'rand' as the order will return links in a random order.
 * @param bool   $show_description Optional. Whether to show the description if show_images=false/not defined.
 *                                 Default true.
 * @param bool   $show_rating      Optional. Show rating stars/chars. Default false.
 * @param int    $limit            Optional. Limit to X entries. If not specified, all entries are shown.
 *                                 Default -1.
 * @param int    $show_updated     Optional. Whether to show last updated timestamp. Default 1.
 * @param bool   $display          Whether to display the results, or return them instead.
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $display = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (str_starts_with($orderby, '_')) {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        // get_bookmarks() uses '' to signify all categories.
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (!str_starts_with($row->link_updated_f, '00')) {
                $title .= ' (' . __('Last updated') . ' ' . gmdate(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (str_contains($row->link_image, 'http')) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path.
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // End while.
    if (!$display) {
        return $output;
    }
    echo $output;
}

WordPress Version: 6.1

/**
 * Gets the links associated with category by ID.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int    $category         Optional. The category to use. If no category supplied uses all.
 *                                 Default 0.
 * @param string $before           Optional. The HTML to output before the link. Default empty.
 * @param string $after            Optional. The HTML to output after the link. Default '<br />'.
 * @param string $between          Optional. The HTML to output between the link/image and its description.
 *                                 Not used if no image or $show_images is true. Default ' '.
 * @param bool   $show_images      Optional. Whether to show images (if defined). Default true.
 * @param string $orderby          Optional. The order to output the links. E.g. 'id', 'name', 'url',
 *                                 'description', 'rating', or 'owner'. Default 'name'.
 *                                 If you start the name with an underscore, the order will be reversed.
 *                                 Specifying 'rand' as the order will return links in a random order.
 * @param bool   $show_description Optional. Whether to show the description if show_images=false/not defined.
 *                                 Default true.
 * @param bool   $show_rating      Optional. Show rating stars/chars. Default false.
 * @param int    $limit            Optional. Limit to X entries. If not specified, all entries are shown.
 *                                 Default -1.
 * @param int    $show_updated     Optional. Whether to show last updated timestamp. Default 1.
 * @param bool   $display          Whether to display the results, or return them instead.
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $display = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        // get_bookmarks() uses '' to signify all categories.
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . gmdate(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path.
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // End while.
    if (!$display) {
        return $output;
    }
    echo $output;
}

WordPress Version: 5.5

/**
 * Gets the links associated with category by ID.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int    $category         Optional. The category to use. If no category supplied uses all.
 *                                 Default 0.
 * @param string $before           Optional. The HTML to output before the link. Default empty.
 * @param string $after            Optional. The HTML to output after the link. Default '<br />'.
 * @param string $between          Optional. The HTML to output between the link/image and its description.
 *                                 Not used if no image or $show_images is true. Default ' '.
 * @param bool   $show_images      Optional. Whether to show images (if defined). Default true.
 * @param string $orderby          Optional. The order to output the links. E.g. 'id', 'name', 'url',
 *                                 'description', 'rating', or 'owner'. Default 'name'.
 *                                 If you start the name with an underscore, the order will be reversed.
 *                                 Specifying 'rand' as the order will return links in a random order.
 * @param bool   $show_description Optional. Whether to show the description if show_images=false/not defined.
 *                                 Default true.
 * @param bool   $show_rating      Optional. Show rating stars/chars. Default false.
 * @param int    $limit            Optional. Limit to X entries. If not specified, all entries are shown.
 *                                 Default -1.
 * @param int    $show_updated     Optional. Whether to show last updated timestamp. Default 1.
 * @param bool   $echo             Whether to echo the results, or return them instead.
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        // get_bookmarks() uses '' to signify all categories.
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . gmdate(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path.
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // End while.
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 5.4

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        // get_bookmarks() uses '' to signify all categories.
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . gmdate(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path.
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // End while.
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 5.3

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        //get_bookmarks uses '' to signify all categories
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . gmdate(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // end while
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 4.6

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1.0', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        //get_bookmarks uses '' to signify all categories
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // end while
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 4.4

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1.0 Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        //get_bookmarks uses '' to signify all categories
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // end while
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 3.9

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1.0
 * @deprecated Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        //get_bookmarks uses '' to signify all categories
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // end while
    if (!$echo) {
        return $output;
    }
    echo $output;
}

WordPress Version: 3.7

/**
 * Gets the links associated with category by id.
 *
 * @since 0.71
 * @deprecated 2.1
 * @deprecated Use get_bookmarks()
 * @see get_bookmarks()
 *
 * @param int $category The category to use. If no category supplied uses all
 * @param string $before the html to output before the link
 * @param string $after the html to output after the link
 * @param string $between the html to output between the link/image and its description.
 *		Not used if no image or show_images == true
 * @param bool $show_images whether to show images (if defined).
 * @param string $orderby the order to output the links. E.g. 'id', 'name', 'url',
 *		'description', or 'rating'. Or maybe owner. If you start the name with an
 *		underscore the order will be reversed. You can also specify 'rand' as the order
 *		which will return links in a random order.
 * @param bool $show_description whether to show the description if show_images=false/not defined.
 * @param bool $show_rating show rating stars/chars
 * @param int $limit Limit to X entries. If not specified, all entries are shown.
 * @param int $show_updated whether to show last updated timestamp
 * @param bool $echo whether to echo the results, or return them instead
 * @return null|string
 */
function get_links($category = -1, $before = '', $after = '<br />', $between = ' ', $show_images = true, $orderby = 'name', $show_description = true, $show_rating = false, $limit = -1, $show_updated = 1, $echo = true)
{
    _deprecated_function(__FUNCTION__, '2.1', 'get_bookmarks()');
    $order = 'ASC';
    if (substr($orderby, 0, 1) == '_') {
        $order = 'DESC';
        $orderby = substr($orderby, 1);
    }
    if ($category == -1) {
        //get_bookmarks uses '' to signify all categories
        $category = '';
    }
    $results = get_bookmarks(array('category' => $category, 'orderby' => $orderby, 'order' => $order, 'show_updated' => $show_updated, 'limit' => $limit));
    if (!$results) {
        return;
    }
    $output = '';
    foreach ((array) $results as $row) {
        if (!isset($row->recently_updated)) {
            $row->recently_updated = false;
        }
        $output .= $before;
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_prepend');
        }
        $the_link = '#';
        if (!empty($row->link_url)) {
            $the_link = esc_url($row->link_url);
        }
        $rel = $row->link_rel;
        if ('' != $rel) {
            $rel = ' rel="' . $rel . '"';
        }
        $desc = esc_attr(sanitize_bookmark_field('link_description', $row->link_description, $row->link_id, 'display'));
        $name = esc_attr(sanitize_bookmark_field('link_name', $row->link_name, $row->link_id, 'display'));
        $title = $desc;
        if ($show_updated) {
            if (substr($row->link_updated_f, 0, 2) != '00') {
                $title .= ' (' . __('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + get_option('gmt_offset') * HOUR_IN_SECONDS) . ')';
            }
        }
        if ('' != $title) {
            $title = ' title="' . $title . '"';
        }
        $alt = ' alt="' . $name . '"';
        $target = $row->link_target;
        if ('' != $target) {
            $target = ' target="' . $target . '"';
        }
        $output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';
        if ($row->link_image != null && $show_images) {
            if (strpos($row->link_image, 'http') !== false) {
                $output .= "<img src=\"{$row->link_image}\" {$alt} {$title} />";
            } else {
                // If it's a relative path
                $output .= "<img src=\"" . get_option('siteurl') . "{$row->link_image}\" {$alt} {$title} />";
            }
        } else {
            $output .= $name;
        }
        $output .= '</a>';
        if ($show_updated && $row->recently_updated) {
            $output .= get_option('links_recently_updated_append');
        }
        if ($show_description && '' != $desc) {
            $output .= $between . $desc;
        }
        if ($show_rating) {
            $output .= $between . get_linkrating($row);
        }
        $output .= "{$after}\n";
    }
    // end while
    if (!$echo) {
        return $output;
    }
    echo $output;
}