LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
En este artículo vamos a ver como agregar meta-etiquetas (meta-tags) desde cualquier fichero php de un componente Joomla!. Veremos el caso concreto de las etiquetas propias de facebook y cómo modificar las estándar de meta-description y meta-keywords.
Vamos a ver las meta-tags en Joomla!
API de Joomla!
En la biblioteca JFactory tenemos las funciones relacionadas con los "documentos" a través de getDocument(). Por lo tanto, lo primero que haremos será crear una variable para que podamos acceder a dichas funciones.
$doc = JFactory::getDocument();
La función que nos interesa para este caso addCustomTag.
Etiquetas de Facebook en Joomla!
Cuando compartimos algo en esta red social podemos seleccionar qué mostrar a partir de las etiquetas propias de Facebook. Estas etiquetas son las siguientes:
<meta property="og:title" content="Título del artículo"/> <meta property="og:type" content="tipo"/> <meta property="og:url" content="http://www.dominio.com/url-del-articulo"/> <meta property="og:image" content="http://www.dominio.com/directorio/imagen-del-articulo.jpg"/> <meta property="og:description" content="Texto introductorio del artículo que vamos a compartir"/>
Para generar estas etiquetas tendremos que añadir en nuestro código lo siguiente:
El archivo a modificar, puede ser:
templates/xxx/html/com_content/article/
$doc = JFactory::getDocument(); $doc->addCustomTag( '<meta property="og:title" content="Título del artículo"/>' ); $doc->addCustomTag( '<meta property="og:type" content="tipo"/>' ); $doc->addCustomTag( '<meta property="og:url" content="http://www.dominio.com/url-del-articulo"/>' ); $doc->addCustomTag( '<meta property="og:image" content="http://www.dominio.com/directorio/imagen-del-articulo.jpg"/>' ); $doc->addCustomTag( '<meta property="og:description" content="Texto introductorio del artículo que vamos a compartir"/>' );
Con este código Joomla! añade las meta-etiquetas de Facebook entre de las etiquetasdel HTML que genera el artículo.
Etiquetas estándar en Joomla!
Muy parecido a lo que acabamos de ver para Facebook tendremos que hacer para modificar las etiquetas description y keywords. En este caso tendremos que hacer otra llamada a JFactory.
$app = JFactory::getApplication(); $app->addMetaTag('description', 'Descripción del artículo que se va a mostrar'); $app->addMetaTag('keywords', 'palabra clave1, palabra clave2, palabra clave3');
Esto generará entre las etiquetaslas siguientes meta-etiquetas:
<meta name="description" content="Descripción del artículo que se va a mostrar" /> <meta name="keywords" content="palabra clave1, palabra clave2, palabra clave3" />
[actualización - 16/12/2014] A petición de Manuel (BoleMC)
Cómo hacerlo de forma dinámica para que cada artículo tenga su propia personalización
Para realizar esta acción tendremos que hacer un override del componente com_content de la vista de artículos (article).
Para saber cómo crear un override os recomiendo hacer el curso sobre desarrollo de plantillas que os he preparado.
Una vez en el override, tendremos que añadir las siguientes líneas de código al inicio del fichero php (templates/tuplantilla/html/com_content/article/default.php):
$doc = JFactory::getDocument(); // extraemos las imagenes de intro y full text $images = json_decode($this->item->images); $doc->addCustomTag( '<meta property="og:title" content="'.$this->item->title.'"/>' ); $doc->addCustomTag( '<meta property="og:type" content="tipo"/>' ); $doc->addCustomTag( '<meta property="og:url" content="'.JURI::current().'"/>' ); $doc->addCustomTag( '<meta property="og:image" content="'.JURI::base().$images->image_fulltext.'"/>' ); // Si queremos coger la imagen de intro tendríamos que cambiar $images->image_fulltext por $images->image_intro $doc->addCustomTag( '<meta property="og:description" content="'.$this->item->metadesc.'"/>' );
[actualización - 11/07/2015] Tras un artículo de Guillermo Bravo
Vamos a poner las etiquetas de Twitter Card
$doc = JFactory::getDocument(); // extraemos las imagenes de intro y full text $images = json_decode($this->item->images); $doc->addCustomTag( '<meta property="twitter:title" content="'.$this->item->title.'"/>' ); $doc->addCustomTag( '<meta property="twitter:card" content="summary_large_image"/>' ); $doc->addCustomTag( '<meta property="twitter:site" content="'.JURI::base().'"/>' ); $doc->addCustomTag( '<meta property="twitter:creator" content="@sergiois"/>' ); $doc->addCustomTag( '<meta property="twitter:url" content="'.JURI::current().'"/>' ); $doc->addCustomTag( '<meta property="twitter:image" content="'.JURI::base().$images->image_fulltext.'"/>' ); // Si queremos coger la imagen de intro tendríamos que cambiar $images->image_fulltext por $images->image_intro $doc->addCustomTag( '<meta property="twitter:description" content="'.$this->item->metadesc.'"/>' );
Espero que os haya resultado sencillo este tip para Joomla!. Cualquier comentario ya sabéis que es bienvenido.
Fuente: sergioiglesias.net como crear agregar y modificar meta etiquetas personalizadas en joomla

-
Programación
- ExtreHost es ahora Proveedor de Dolibarr en España, puede ayudarte en tu programa de punto de venta, facturación, contabilidad, facturas y proveedores
- Python en el navegador: como si fuera JavaScript, proyecto permite ejecutar Python en tu WEB
- Joomla! fue el Mejor CMS gratuito y Mejor CMS de código abierto de 2021 según la CMS Critic Awards
- Programar un facturador con PHP, JSRender bajo el patrón MVC
- La creadora del BASIC la hermana Mary Kenneth Keller. Primera mujer doctora en computación.
- ¿Te da pereza escribir la documentación? Deje que la IA lo escriba por usted
- Cómo instalar NetBeans IDE en Debian, Ubuntu y Linux Mint
- Cómo instalar NetBeans IDE en CentOS, RHEL y Fedora
- Compila el mismo código fuente para distintas plataformas con PlatformIO
- GRV: una herramienta para ver repositorios de Git en una terminal de Linux
- Creando un Blockchain en 60 líneas de Python
- Después de la protesta de la comunidad de código abierto, Microsoft revierte el controvertido cambio de .NET
- PHP vs Python: ¿Cuál es la mejor programación del lado del servidor?
- Programar y depurar en un IDE para PHP con Eclipse, plugins PDT, xdebug y Remote debug
- Manual Awk mediante ejemplos, Parte 1