Cómo enlazar a la URL original con Feedzy

Son muchos los que usan el plugin Feedzy para obtener contenido de otras webs para, por ejemplo, hacer un portal de noticias relacionadas, páginas de inicio de comunidades, etc.

La función de este plugin es importar los contenidos a partir de un feed RSS y publicarlos en tu web, como si fuesen entradas propias del sitio.

Hasta aquí bien, porque el plugin funciona perfecto, importa las entradas del feed que le añadas y las publica con todo su contenido, imágenes, etc. en tu web, pero ¿y si quieres que los enlaces de las entradas importadas apunten a las URLs originales en vez de a las entradas creadas automáticamente en tu sitio?

Este sería el modo más ético de usar el plugin Feedzy, pues así puedes mostrar contenido o extractos de otros sitios, pero la atribución siempre será al contenido original, con todos los enlaces apuntando a cada URL de origen.

Lamentablemente no hay ningún ajuste en Feedzy para hacer esto. Si publicas en la página de inicio de tu portal las entradas importadas, tanto el enlace del título, la imagen y el extracto apuntarán a la URL del sitio en el que fueron importadas, en vez de a la URL original.

Otro problema es que, aunque ya te anticipo que es posible hacerlo, sino no estaría escribiendo esto ni tú leyéndolo, no está bien documentado en la web de Feedzy, sino en la de su empresa matriz, ThemeIsle, donde afortunadamente tenemos un montón de filtros que podemos aplicar a Feedzy para modificar su comportamiento.

Y hay un par de filtros que son exactamente lo que buscamos, aunque con alguna pequeña modificación, que ya te incluyo.

Cómo hacer para que el título de las entradas importadas por Feedzy apunte a la URL original

El filtro que debemos aplicar para conseguir que los títulos de las entradas importadas lleven a cada URL original es el siguiente:

/* Redirigir titulo entrada importada por Feedzy a URL original */
add_filter( 'post_link', function( $url, $post ) {
if ( is_admin() ) {
return $url;
}
$id = $post;
if ( is_object( $post ) ) {
$id = $post->ID;
}
$feedzy = get_post_meta( $id, 'feedzy', true );
if ( intval( $feedzy ) === 1 ) {
return get_post_meta( $id, 'feedzy_item_url', true );
}
return $url;
}, 99999, 2 );

Cómo hacer para que el extracto y botón de leer más de las entradas importadas por Feedzy apunte a la URL original

Si, además, quieres que también el extracto y el texto/botón de leer más también enlacen a la entrada original, el filtro sería este otro:

/* Redirigir extracto de entrada importada por Feedzy a URL original */
function new_excerpt_more($more) {
$current_post_id = get_the_ID();
$current_post_meta = get_post_meta($current_post_id);
if (isset($current_post_meta['feedzy_item_url'][0])) {
return ' <a href="' . $current_post_meta['feedzy_item_url'][0] . '">Leer más</a>';
}
return $url;
}
add_filter('excerpt_more', 'new_excerpt_more');

Y ya estaría, solo tienes que añadir los códigos anteriores y estarías enlazando a las URLs originales, tanto desde el título como desde el extracto y botón de leer más.

Si no sabes dónde o cómo añadir estos códigos aquí tienes un tutorial muy sencillo de varias maneras de hacerlo:

Cómo y dónde pegar en WordPress códigos PHP, JS, CSS y funciones que encuentres por ahí

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 3

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en los medios sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

3 comentarios en “Cómo enlazar a la URL original con Feedzy”

    1. La única manera sería esta, redirigiendo al post original, por defecto de hecho lo que contribuye es a generar contenido duplicado. Lo único que ofrece es cambiar el canonical de las urls importadas en sus ajustes

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Información base sobre privacidad:
  • Responsable: Fernando Tellado ([email protected])
  • Fin del tratamiento: Moderación de comentarios para evitar spam
  • Legitimación: Tu consentimiento
  • Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
  • Derechos: Acceso, rectificación, portabilidad, olvido

 

Ir arriba
Ir al contenido