Se o seu site exibe pontos de interrogação em vez de caracteres especiais, provavelmente a codificação de seu banco de dados não é UTF-8.

Se você está usando PHPMyAdmin, a estrutura de sua tabela wp_posts deve ser similar a:

wp_posts visto pelo PHPMyAdmin

Se você notar um valor diferente para o campo collation, significa que a codificação de caracteres está incorreta. Isso fará o texto ser exibido de forma incorreta, porque o navegador não sabe como exibir os caracteres especiais.

Existe um modo fácil de resolver o problema.

Tudo o que você precisa fazer é executar comandos ALTER em todos os seus dados para mudar sua codificação para UTF-8. O jeito fácil de fazer isso é usar o plugin Convert WP Database to UTF-8. Esse plugin executa os seguintes comandos SQL:

ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE $table CHANGE $field_name $field_name $field_type CHARACTER SET utf8 COLLATE utf8_bin

Como você deve ter imaginado, é uma ótima idéia fazer backup de seu banco de dados antes de fazer isso.

Finalmente, garanta que não se desviará da codificação UTF-8 no futuro, edite seu arquivo wp-config.php e defina a codificação corretamente. Ele deve conter:

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');