Disculpa pero es una locura crear un campo en una tabla de núcleo para este fin y mucho menos usar consultas directas sin ningún dispositivo de seguridad (por eso es que ocurren los SQL injections y luego culpan a WordPress).
Usa la tabla $wpdb->postmeta y las funciones disponibles para armar los queries extra que necesites. Pega esto
dentro de tu loop en
single.php y pruébalo:
Código PHP:
Ver original<?php
$conteo = get_post_meta(get_the_ID() , 'visitas' , true);
$visitas = update_post_meta(get_the_ID() , 'visitas' , ($conteo + 1));
echo '<p class="visitas">'. $conteo + 1 .'</p>';
?>
Y muerto el perro.
La falla que comentas (la actualización del otro post junto con el actual) posiblemente se deba a
una falla del theme que estás usando, pues algunos diseñadores utilizan los loops de forma muy deportiva, sin darles el debido cierre. Single.php no tiene el mismo comportamiento que index.php o category.php, por lo cual este tipo de errores es muy frecuente, y sólo salen a la luz cuando implementamos funciones extra, como la que quieres lograr.