Para editores
Añade a tu sitio un rincón de IA siempre vivo
Un bloque gratuito que se llena solo: las herramientas de IA más nuevas, un prompt para probar, un artículo reciente y guías por objetivo de trendhub. Pega el código una vez; se mantiene al día por sí solo.
Ejemplo en vivo, tal como lo verán tus visitantes

Cartel de viaje de calle urbana en línea monocromática estilo line artCopiar el prompt →Del blog
Desde Bad Bunny hasta Jay-Z, la Super Bowl sigue acaparando titulares6 min de lectura →Nuevas herramientas, prompts y artículos rotan cada 10 minutos. No tendrás que tocarlo nunca más.
Tres tarjetas en páginas anchas y filas compactas en barras laterales y móviles. Los temas claro y oscuro siguen a tu visitante.
HTML sencillo con una pequeña hoja de estilos. Sin cookies, sin rastreadores, sin scripts de terceros.
Obtener el código
Elige el idioma del bloque y pega el código donde quieras que aparezca. Los sitios PHP reciben HTML real en la página, lo mejor para lectores y buscadores.
Englishhttps://trendhub.net/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-en.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Türkçehttps://trendhub.net/tr/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-tr.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/tr/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/tr/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Deutschhttps://trendhub.net/de/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-de.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/de/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/de/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Españolhttps://trendhub.net/es/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-es.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/es/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/es/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Françaishttps://trendhub.net/fr/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-fr.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/fr/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/fr/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Italianohttps://trendhub.net/it/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-it.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/it/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/it/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Nederlandshttps://trendhub.net/nl/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-nl.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/nl/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/nl/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Ελληνικάhttps://trendhub.net/el/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-el.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/el/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/el/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Русскийhttps://trendhub.net/ru/embed/pulse
<?php
// trendhub Pulse: refreshes every 10 minutes; if trendhub cannot be reached, the last copy is shown.
$cache = __DIR__ . '/cache/trendhub-pulse-ru.html';
if (!is_file($cache) || filemtime($cache) < time() - 600) {
$html = @file_get_contents('https://trendhub.net/ru/embed/pulse?src=' . rawurlencode($_SERVER['HTTP_HOST'] ?? ''), false, stream_context_create(['http' => ['timeout' => 3]]));
if (is_string($html) && ($end = strrpos($html, '</section>')) !== false) $html = substr($html, 0, $end + 10);
// Only a genuine Pulse block is kept: no scripts, no inline event handlers.
if (is_string($html) && strpos($html, '<section class="thp"') === 0 && !preg_match('/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i', $html)) {
@mkdir(dirname($cache), 0755, true);
file_put_contents($cache, $html, LOCK_EX);
} elseif (is_file($cache)) {
touch($cache); // try again in 10 minutes, keep showing the last good copy
}
}
if (is_file($cache)) readfile($cache);
?>
<div id="trendhub-pulse"></div>
<script>fetch("https://trendhub.net/ru/embed/pulse?src="+location.hostname).then(function(r){return r.text()}).then(function(h){var e=h.lastIndexOf("</section>");if(e>0)h=h.slice(0,e+10);if(h.indexOf('<section class="thp"')===0&&!/<\s*(script|iframe|object|embed|form)|\son[a-z]+\s*=|javascript:/i.test(h))document.getElementById("trendhub-pulse").innerHTML=h})</script>
Por favor, deja el bloque tal cual, con el nombre y los enlaces de trendhub. ¿Tienes preguntas o quieres una versión a medida? Contáctanos.
Preguntas
¿Es gratis?
Sí. El bloque es gratuito para cualquier sitio. Solo te pedimos que lo dejes tal cual, con el nombre y los enlaces de trendhub.
¿Hará más lento mi sitio?
No. El código PHP guarda una copia en tu servidor y la actualiza cada 10 minutos, así que tus visitantes nunca esperan a trendhub. El bloque no lleva scripts de seguimiento.
¿Usa cookies?
No. El bloque no instala cookies ni carga scripts de terceros. Es HTML sencillo con una pequeña hoja de estilos.
¿Puedo elegir el idioma y el tema?
Sí. Elige uno de los 9 idiomas de abajo. El bloque sigue el modo claro u oscuro de tu visitante, o puedes fijar uno añadiendo ?theme=light o ?theme=dark a la dirección.
¿Se adapta a mi diseño?
Sí. El bloque mide el espacio disponible: tres tarjetas en fila en zonas anchas y filas compactas en columnas estrechas y en móviles.