A imagem que é usada para compartilhar é retirada de um trecho de código no cabeçalho do seu site que se parece com isso:
<link rel="image_src" href="path/to/theme/screenshot.png" />
Normalmente, vincula-se à captura de tela do seu site no tema. Se você removeu o código do cabeçalho do arquivo e em single.php coloque-o dentro do loop e chamou sua imagem de miniatura de post para o elemento href, eu acredito que funcionaria. Então, seria algo parecido com:
<link rel="image_src" href="<?php the_post_thumbnail(); ?>" />
Isso significa que, se você tiver botões nas páginas que listam várias postagens, provavelmente você não terá uma imagem. Se você incluísse algum código condicional que o removesse apenas em single.php, você teria a imagem normal em qualquer página com várias postagens e um botão semelhante e a miniatura da postagem quando o modelo single.php estiver sendo usado. Então, o código do cabeçalho seria:
<?php if ( is_single() ) { /* do nothing on single pages */ } else { ?>
<link rel="image_src" href="path/to/theme/screenshot.png" />
<?php } ?>
Então você ainda usaria o código para incluir a miniatura da postagem em single.php.