Переменные $imager5 и так далее, доступны в цикле, вы пишите код JS вне цикла - то есть используете последние присвоенные значения у этих переменных.
let idash = "<?php echo $imager5?>";
if (document.getElementById(idash).src="<?php echo $imager4?>"){
document.getElementById("per_4").src="<?php echo $imager3 ?>;"
Вам нужно брать в JS эти данные из кода изображения, что-то типа
while (have_posts()) : the_post(); // запускаем цикл обхода материалов блога
$imager3 = get_the_post_thumbnail_url( get_the_ID(), 'full' );
$imager4 = get_the_post_thumbnail_url( get_the_ID(), 'medium' );
$imager5 = get_the_ID();
?>
<img src="<?php echo $imager4 ?>" id="<?php echo $imager5?>" onClick="chg2('<?php echo $imager3 ?>', '<?php echo $imager4 ?>', '<?php echo $imager4 ?>')">
<?php
endwhile; // завершаем цикл.
Выше в функцию chg2, при клике, вы передаёте все три изображения
И потом используете их в JS? тут уже никакого PHP:
<script>
function chg2(imager3, imager4, imager5 ){
let idash = imager4
if (document.getElementById(idash).src=imager4){
document.getElementById("per_4").src=imager5
}
}
</script>
PS в работу кода я не вникал, а только указал на вашу ошибку....