do_trackbacks( int|WP_Post $post ): void|false

In this article

Performs trackbacks.

Parameters

$postint|WP_Postrequired
Post ID or object to do trackbacks on.

Return

void|false Returns false on failure.

Source

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 );

	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, '')) WHERE ID = %d",
					$tb_ping,
					$post->ID
				)
			);
		}
	}
}

Hooks

apply_filters( ‘the_content’, string $content )

Filters the post content.

apply_filters( ‘the_excerpt’, string $post_excerpt )

Filters the displayed post excerpt.

apply_filters( ‘the_title’, string $post_title, int $post_id )

Filters the post title.

Changelog

VersionDescription
4.7.0$post can be a WP_Post object.
1.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.