Soporte » Plugins y Hacks » Meter automaticamente un link cuando aparezca X palabra

  • Resuelto cyttorak

    (@cyttorak)


    Hola

    Quiero tener algún panel donde poner parejas de <«grupo de palabras» – «link»> de manera que luego cada vez que aparezca en algun lugar de la web tal grupo de palabras se le meta su link correspondiente.

    Por ejemplo, imaginemos que tengo puesto en ese «panel»
    Albert Einstein – http://es.wikipedia.org/wiki/Albert_Einstein

    Pues quiero que cada vez que alguien ponga en un post/pagina/comentario/etc Albert Einstein salga con el link a al wikipedia

    ¿hay algún plugin para eso?

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Hola.
    WP tiene un API para eso que se llama Shortcode API. Básicamente, te permite registrar un shortcode para que cada vez que aparezca en tu sitio, sea reemplazado automáticamente por el contenido deseado.
    Acá te hice una función básica que debería hacer lo que vos querés. Tenés que pegarla en el archivo functions.php de tu plantilla o tema. Si estás trabajando con un tema secundario (Child Theme), pegala en el archivo functions.php de tu tema secundario:

    /* Función de shortcode para enlaces de Wikipedia */
    function cyt_wiki_links( $atts ) {
    	extract( shortcode_atts( array(
    		'article' => '',
    	), $atts ) );
    	$base = "http://es.wikipedia.org/wiki";
    	if ( !empty($article) && is_string($article) ) {
    		$desc = str_replace(array("_"),array(" "), $article);
    		$link = "$base/$article";
    	} else {
    		$desc = "Wikipedia";
    		$link = $base;
    	}
    	$output = "<a href='$link' title='$desc'>$desc</a>";
    	return $output;
    }
    add_shortcode('wiki-links', 'cyt_wiki_links');
    if ( !has_filter('widget_text', 'do_shortcode') )
    	add_filter('widget_text', 'do_shortcode');

    Esto funciona así. Suponete que estás escribiendo un artículo sobre Albert Einstein o lo mencionás al pasar, tenés que escribir el código siguiente en tu artículo:

    [wiki-links article="Albert_Einstein"]

    Fijate que el valor se le pasa a article corresponde al nombre corto del artículo de Wikipedia, o sea, la última parte de la URL (incluyendo los guiones bajos, si no no funciona).
    Si quisieras agregar un link al artículo de Wikipedia sobre Wikipedia, pondrías lo siguiente:

    [wiki-links article="Wikipedia"]

    Si no especificas un valor para article:

    [wiki-links]

    se genera un link a la página de bienvenida de Wikipedia.
    Esto también funciona en un widget de texto.
    Espero que te sirva.
    Saludos.

    Hola

    Gracias por el shortchode pero no es lo que busco.
    Lo de Alber Einstein y wikpedia es solo un ejemplo.

    La idea es que el admin que va a rellenar esa tabla < palabras – link > no va a ser el mismo que las personas que escribien las entradas en el blog.

    Es decir, no puedo depender que los editores se acuerden (quieran o sepan) de usar shortcodes.

    La sustitución ha de ser algo global, como por ejemplo cuando en un foro se escribe una url sin más y al publicar el propio foro se encarga de convertirlo en un link cliclable.

    Hola.
    En ese caso, me parece que lo mejor sería un filtro de contenido que reemplace todas las palabras clave en tu sitio con los links respectivos.
    La lista podría obtenerse desde un archivo txt en la raíz de tu tema o se podría hacer un mini-plugin accesible sólo a los admins donde ellos puedan agregar los links junto con sus palabras clave.
    Sería relativamente fácil de hacer si es que te parece que puede andar.
    Saludos.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Meter automaticamente un link cuando aparezca X palabra’ está cerrado a nuevas respuestas.