Странно, но в API WordPress не нашел функции поиска одинаковых заголовков постов. Для моего плагина нужно было проверить, существует ли такой заголовок или нет. Пришлось написать собственную функцию для этого.

<?php
function my_post_exists($mytitle){
  global $wpdb;
  $mytitle=strtoupper($mytitle); //преобразуем строку в верхний регистр
  $mytitle = trim($mytitle, ' '); //удаляем пробелы из начала и конца строки

  if ($mytitle==''){ //если передана пустая строка
    return true;  
  }

  $sql = $wpdb->get_col("SELECT post_title
    FROM $wpdb->posts
    WHERE post_status = 'publish'
    ORDER BY post_title");
  foreach($sql as $foundtitle){
    $foundtitle=strtoupper($foundtitle); //преобразуем строку в верхний регистр
    if($mytitle==$foundtitle){
      return true; //такой тайтл существует
    }
  }
  return false; //такой тайтл не существует
}
?>

У меня данный код отлично работает на сайте yandexcatalog.org. Конечно, он не идеален — при большом количестве постов его следует оптимизировать. Например, SQL-запросом выбирать не все записи, а лишь из той рубрики, в которую собираетесь опубликовать пост. Но мне пока такого решения вполне достаточно. Хотя, если знаете способ лучше — прошу в комментарии 😉