do_trackbacks

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

WordPress Version: 6.3

/**
 * Performs trackbacks.
 *
 * @since 1.5.0
 * @since 4.7.0 `$post` can be a WP_Post object.
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|WP_Post $post Post ID or object to do trackbacks on.
 * @return void|false Returns false on failure.
 */
function do_trackbacks($post)
{
    global $wpdb;
    $post = get_post($post);
    if (!$post) {
        return false;
    }
    $to_ping = get_to_ping($post);
    $pinged = get_pung($post);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post->ID));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged, true)) {
                trackback($tb_ping, $post_title, $excerpt, $post->ID);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s,\n\t\t\t\t\t'')) WHERE ID = %d", $tb_ping, $post->ID));
            }
        }
    }
}

WordPress Version: 6.1

/**
 * Performs trackbacks.
 *
 * @since 1.5.0
 * @since 4.7.0 `$post` can be a WP_Post object.
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|WP_Post $post Post ID or object to do trackbacks on.
 */
function do_trackbacks($post)
{
    global $wpdb;
    $post = get_post($post);
    if (!$post) {
        return false;
    }
    $to_ping = get_to_ping($post);
    $pinged = get_pung($post);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post->ID));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged, true)) {
                trackback($tb_ping, $post_title, $excerpt, $post->ID);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s,\n\t\t\t\t\t'')) WHERE ID = %d", $tb_ping, $post->ID));
            }
        }
    }
}

WordPress Version: 5.5

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @since 4.7.0 `$post_id` can be a WP_Post object.
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|WP_Post $post_id Post object or ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    if (!$post) {
        return false;
    }
    $to_ping = get_to_ping($post);
    $pinged = get_pung($post);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post->ID));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged, true)) {
                trackback($tb_ping, $post_title, $excerpt, $post->ID);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s,\n\t\t\t\t\t'')) WHERE ID = %d", $tb_ping, $post->ID));
            }
        }
    }
}

WordPress Version: 5.1

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @since 4.7.0 `$post_id` can be a WP_Post object.
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|WP_Post $post_id Post object or ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    if (!$post) {
        return false;
    }
    $to_ping = get_to_ping($post);
    $pinged = get_pung($post);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post->ID));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post->ID);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s,\n\t\t\t\t\t'')) WHERE ID = %d", $tb_ping, $post->ID));
            }
        }
    }
}

WordPress Version: 4.7

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @since 4.7.0 $post_id can be a WP_Post object.
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int|WP_Post $post_id Post object or ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    if (!$post) {
        return false;
    }
    $to_ping = get_to_ping($post);
    $pinged = get_pung($post);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post->ID));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post->ID);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s,\n\t\t\t\t\t'')) WHERE ID = %d", $tb_ping, $post->ID));
            }
        }
    }
}

WordPress Version: 4.1

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 *
 * @global wpdb $wpdb WordPress database abstraction object.
 *
 * @param int $post_id Post ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    $to_ping = get_to_ping($post_id);
    $pinged = get_pung($post_id);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post_id);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id));
            }
        }
    }
}

WordPress Version: 4.0

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @uses $wpdb
 *
 * @param int $post_id Post ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    $to_ping = get_to_ping($post_id);
    $pinged = get_pung($post_id);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-includes/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post_id);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id));
            }
        }
    }
}

WordPress Version: 3.8

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @uses $wpdb
 *
 * @param int $post_id Post ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    $to_ping = get_to_ping($post_id);
    $pinged = get_pung($post_id);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id));
        return;
    }
    if (empty($post->post_excerpt)) {
        /** This filter is documented in wp-admin/post-template.php */
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        /** This filter is documented in wp-admin/post-template.php */
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post_id);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id));
            }
        }
    }
}

WordPress Version: 3.7

/**
 * Perform trackbacks.
 *
 * @since 1.5.0
 * @uses $wpdb
 *
 * @param int $post_id Post ID to do trackbacks on.
 */
function do_trackbacks($post_id)
{
    global $wpdb;
    $post = get_post($post_id);
    $to_ping = get_to_ping($post_id);
    $pinged = get_pung($post_id);
    if (empty($to_ping)) {
        $wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id));
        return;
    }
    if (empty($post->post_excerpt)) {
        $excerpt = apply_filters('the_content', $post->post_content, $post->ID);
    } else {
        $excerpt = apply_filters('the_excerpt', $post->post_excerpt);
    }
    $excerpt = str_replace(']]>', ']]>', $excerpt);
    $excerpt = wp_html_excerpt($excerpt, 252, '…');
    /** This filter is documented in wp-includes/post-template.php */
    $post_title = apply_filters('the_title', $post->post_title, $post->ID);
    $post_title = strip_tags($post_title);
    if ($to_ping) {
        foreach ((array) $to_ping as $tb_ping) {
            $tb_ping = trim($tb_ping);
            if (!in_array($tb_ping, $pinged)) {
                trackback($tb_ping, $post_title, $excerpt, $post_id);
                $pinged[] = $tb_ping;
            } else {
                $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id));
            }
        }
    }
}