rel_canonical

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

WordPress Version: 5.1

/**
 * Outputs rel=canonical for singular queries.
 *
 * @since 2.9.0
 * @since 4.6.0 Adjusted to use `wp_get_canonical_url()`.
 */
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    $id = get_queried_object_id();
    if (0 === $id) {
        return;
    }
    $url = wp_get_canonical_url($id);
    if (!empty($url)) {
        echo '<link rel="canonical" href="' . esc_url($url) . '" />' . "\n";
    }
}

WordPress Version: 4.6

/**
 * Outputs rel=canonical for singular queries.
 *
 * @since 2.9.0
 * @since 4.6.0 Adjusted to use wp_get_canonical_url().
 */
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    $id = get_queried_object_id();
    if (0 === $id) {
        return;
    }
    $url = wp_get_canonical_url($id);
    if (!empty($url)) {
        echo '<link rel="canonical" href="' . esc_url($url) . '" />' . "\n";
    }
}

WordPress Version: 4.5

/**
 * Output rel=canonical for singular queries.
 *
 * @since 2.9.0
 */
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    if (!$id = get_queried_object_id()) {
        return;
    }
    $url = get_permalink($id);
    $page = get_query_var('page');
    if ($page >= 2) {
        if ('' == get_option('permalink_structure')) {
            $url = add_query_arg('page', $page, $url);
        } else {
            $url = trailingslashit($url) . user_trailingslashit($page, 'single_paged');
        }
    }
    $cpage = get_query_var('cpage');
    if ($cpage) {
        $url = get_comments_pagenum_link($cpage);
    }
    echo '<link rel="canonical" href="' . esc_url($url) . "\" />\n";
}

WordPress Version: 4.1

/**
 * Output rel=canonical for singular queries.
 *
 * @since 2.9.0
*/
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    if (!$id = get_queried_object_id()) {
        return;
    }
    $url = get_permalink($id);
    $page = get_query_var('page');
    if ($page >= 2) {
        if ('' == get_option('permalink_structure')) {
            $url = add_query_arg('page', $page, $url);
        } else {
            $url = trailingslashit($url) . user_trailingslashit($page, 'single_paged');
        }
    }
    $cpage = get_query_var('cpage');
    if ($cpage) {
        $url = get_comments_pagenum_link($cpage);
    }
    echo '<link rel="canonical" href="' . esc_url($url) . "\" />\n";
}

WordPress Version: 4.4

/**
 * Output rel=canonical for singular queries.
 *
 * @since 2.9.0
*/
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    if (!$id = get_queried_object_id()) {
        return;
    }
    $url = get_permalink($id);
    $page = get_query_var('page');
    if ($page) {
        $url = trailingslashit($url) . user_trailingslashit($page, 'single_paged');
    }
    $cpage = get_query_var('cpage');
    if ($cpage) {
        $url = get_comments_pagenum_link($cpage);
    }
    echo '<link rel="canonical" href="' . esc_url($url) . "\" />\n";
}

WordPress Version: 4.3

/**
 * Output rel=canonical for singular queries.
 *
 * @since 2.9.0
 *
 * @global WP_Query $wp_the_query
*/
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    global $wp_the_query;
    if (!$id = $wp_the_query->get_queried_object_id()) {
        return;
    }
    $link = get_permalink($id);
    if ($page = get_query_var('cpage')) {
        $link = get_comments_pagenum_link($page);
    }
    echo "<link rel='canonical' href='{$link}' />\n";
}

WordPress Version: 3.9

/**
 * Output rel=canonical for singular queries.
 *
 * @since 2.9.0
*/
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    global $wp_the_query;
    if (!$id = $wp_the_query->get_queried_object_id()) {
        return;
    }
    $link = get_permalink($id);
    if ($page = get_query_var('cpage')) {
        $link = get_comments_pagenum_link($page);
    }
    echo "<link rel='canonical' href='{$link}' />\n";
}

WordPress Version: 3.7

/**
 * Output rel=canonical for singular queries.
 *
 * @package WordPress
 * @since 2.9.0
*/
function rel_canonical()
{
    if (!is_singular()) {
        return;
    }
    global $wp_the_query;
    if (!$id = $wp_the_query->get_queried_object_id()) {
        return;
    }
    $link = get_permalink($id);
    if ($page = get_query_var('cpage')) {
        $link = get_comments_pagenum_link($page);
    }
    echo "<link rel='canonical' href='{$link}' />\n";
}