function auto_id_headings( $content ) {
$content = preg_replace_callback( '/(\<h[1-6](.*?))\>(.*)(<\/h[1-6]>)/i', function( $matches ) {
if ( ! stripos( $matches[0], 'id=' ) ) :
$matches[0] = $matches[1] . $matches[2] . ' id="' . [sanitize_title](http://codex.wordpress.org/Plugin_API/Filter_Reference/sanitize_title)( $matches[3] ) . '">' . $matches[3] . $matches[4];
endif;
return $matches[0];
}, $content );
return $content;
}
[add_filter](http://codex.wordpress.org/Function_Reference/add_filter)( '[the_content](http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content)', 'auto_id_headings' );