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.
Índice de contenidos
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í
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Hola, Fernando.
No conocía este plugin. ¿Cómo evita Feedzy el contenido duplicado?
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
Me parece util para una agencia sobre todo, por aquello de las BPN.