A imagem usada para compartilhar é obtida de um pedaço de código no cabeçalho do seu site que terá a seguinte aparência:
<link rel="image_src" href="path/to/theme/screenshot.png" />
Normalmente, ele é vinculado à captura de tela do seu site no tema. Se você removeu o código do cabeçalho do arquivo e no single.php, coloque-o dentro do loop e chame a imagem em miniatura da postagem no elemento href, acredito que funcionaria. Então, seria algo como:
<link rel="image_src" href="<?php the_post_thumbnail(); ?>" />
Isso significa que, se você tiver botões como nas páginas que listam várias postagens, provavelmente não terá uma imagem. Se você incluísse algum código condicional que o removesse apenas no single.php, você teria a imagem normal em qualquer página com várias postagens e um botão like e a miniatura da postagem quando o modelo single.php estiver sendo usado. Portanto, 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 no single.php.