Mostrar contenido por IP del visitante en WordPress

Autor:Lisa Farrell · 2026-06-01

Los sitios WordPress suelen necesitar contenidos distintos en entradas, productos o landing pages según la región del visitante. Un shortcode puede mostrar contenido predeterminado y llamar https://my.ipin.io/info desde el navegador.

Explicación de la API

Una llamada del navegador comprueba la IP del visitante y devuelve su IP, país, región y ciudad. Es adecuada para mostrar contenido localizado.

{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}

Casos de uso

Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.

  • Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.
  • Mostrar contenido geolocalizado por IP en WordPress
  • Explicación de la API
  • Recomendaciones SEO y UX

Lógica de implementación

Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.

  • Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.
  • Una llamada del navegador comprueba la IP del visitante y devuelve su IP, país, región y ciudad. Es adecuada para mostrar contenido localizado.
  • Todos los ejemplos siguientes usan directamente https://my.ipin.io/info, con comentarios y textos de interfaz localizados.
  • El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.

Ejemplo de código

Todos los ejemplos siguientes usan directamente https://my.ipin.io/info, con comentarios y textos de interfaz localizados.

functions.php / plugin

function ipin_geo_content_shortcode() {
    $box_id = 'ipin-geo-content-' . wp_generate_uuid4();
    ob_start();
    ?>
    <div id="<?php echo esc_attr($box_id); ?>" class="ipin-geo-box">Bienvenido. Este es el contenido predeterminado.</div>
    <script>
    (async function () {
      const el = document.getElementById("<?php echo esc_js($box_id); ?>");
      const defaultText = "Bienvenido. Este es el contenido predeterminado.";
const contentMap = { TW: "Contenido para visitantes de Taiwán", US: "Contenido para visitantes de Estados Unidos", JP: "Contenido para visitantes de Japón" };
try {
  // Llamada del navegador a /info: detecta la IP del visitante.
  const info = await fetch("https://my.ipin.io/info").then(res => res.json());
  el.textContent = contentMap[info.country] || defaultText;
} catch (e) {
  // Mantener el valor predeterminado si falla la solicitud API.
  el.textContent = defaultText;
}
    })();
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('geo_content', 'ipin_geo_content_shortcode');

Shortcode

[geo_content]

Recomendaciones SEO y UX

El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.

Errores comunes

Los siguientes puntos afectan la precisión del artículo, la utilidad del código y la credibilidad de la explicación de la API.

  • Los siguientes puntos afectan la precisión del artículo, la utilidad del código y la credibilidad de la explicación de la API.
  • El contenido predeterminado debe seguir completo y legible, mientras el contenido regional actúa como mejora. Los buscadores rastrean contenido estable y la página sigue siendo útil si falla la API.
  • Antes de implementar, identifique el solicitante: las solicitudes del servidor devuelven IP del servidor y las del navegador devuelven IP del visitante.
  • Estos casos muestran el valor de la interfaz de información IP y separan claramente IP del servidor e IP del visitante.

Resumen

Una llamada del navegador comprueba la IP del visitante y devuelve su IP, país, región y ciudad. Es adecuada para mostrar contenido localizado.

Preguntas frecuentes

Las preguntas siguientes fueron redactadas específicamente para este artículo y se relacionan directamente con la implementación.

Pregunta:¿Por qué este ejemplo de WordPress usa un Shortcode?
Respuesta:Porque el Shortcode se puede insertar en entradas, páginas, Gutenberg o Elementor sin editar la plantilla del tema.
Pregunta:¿Por qué la detección del visitante se hace en el navegador?
Respuesta:Porque la llamada desde navegador representa al visitante; una llamada PHP del servidor representaría al servidor WordPress.
Pregunta:¿Qué evita el ID único del bloque generado por el Shortcode?
Respuesta:Evita conflictos cuando la misma página contiene varios bloques de contenido geolocalizado.
Pregunta:¿Cómo afecta la caché de WordPress a este contenido?
Respuesta:La caché de página completa puede mezclar resultados entre regiones, por eso el contenido regional debe cargarse como mejora del lado cliente.
Pregunta:¿Puedo mostrar botones o enlaces en lugar de texto?
Respuesta:Sí. Puede cambiar href, clases CSS o bloques HTML según el campo country devuelto por la API.