wpseek.com
A WordPress-centric search engine for devs and theme authors



do_trackbacks › WordPress Function

Since1.5.0
Deprecatedn/a
do_trackbacks ( $post )
Parameters:
  • (int|WP_Post) $post Post ID or object to do trackbacks on.
    Required: Yes
Returns:
  • (void|false) Returns false on failure.
Defined at:
Codex:
Change Log:
  • 4.7.0

Performs trackbacks.



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