JSで目次を作るに似てますが、本文(the_content)にadd_filterすることで、H2に直接IDを追加します。

プラクティス・デモ

add_filter('the_content','add_attr_id');
function add_attr_id($text){
  if (strpos($text, '<h2>') !== false) {
    $pattern = '/(<h2>)/i';
    $arr     = preg_split($pattern, $text, 0, PREG_SPLIT_DELIM_CAPTURE);
    $i       = 0;
    $content = '';
    foreach ($arr as $key => $value) {
      if (strpos($value, '<h2>') !== false) {
        $i++;
        $value = preg_replace('/<h2>/i', '<h2 id="index' . $i . '">', $value);
      }
      $content[] = $value;
    }
    $text = implode('', $content);
  }
  return $text;
}
ソースコード装飾ならGoogle code prettify