Te repito tu problema está en la consulta, eso es lo que te indica PHP. PHP no va a mentir sobre donde está el error. Por lo tanto, haz lo que te hemos aconsejado desde el principio. Imprime la consulta para que veas si la tienes declarada correctamente. Haz un var_dump a las variables y verás como se están declarando.
Código PHP:
Ver original$publicacion_sql = "SELECT id_mensaje FROM mensajes WHERE categoria = ".$row_foro_disenioweb['id_categoria'];
var_dump($row_foro_disenioweb['id_categoria']);
etc., etc., etc.