¿Cómo agregar el título del sitio a todas las páginas, excepto a la página principal?


8

En la configuración global de Joomla 2.5 en SEO, existe la opción de "Incluir el nombre del sitio en los títulos de las páginas", con las opciones "Después", "Antes" o "No". Sin embargo, ¿cómo incluye el nombre del sitio ("Después") en todas las páginas, excepto en la página principal? (¿Y quizás para otras páginas también?)

Esto está en Joomla 2.5, sin embargo, también me gustaría saber si el proceso es diferente en Joomla 3.

Se prefieren las funciones básicas o las soluciones de código manual. Sin embargo, si hay extensiones adecuadas que brindan esta funcionalidad, no dude en sugerirlas también.


1
No estoy seguro, pero sospecho que la respuesta es que no puede sin una extensión (o una modificación de la plantilla). Tengo curiosidad por saber la respuesta yo mismo :)
Brian Peat

Respuestas:


7

Para establecer el título de la portada de manera diferente al título de otras páginas, agregue el siguiente código al archivo index.php de la plantilla hacia el final de la información del encabezado.

$menu = $app->getMenu();
    if ($menu->getActive() == $menu->getDefault()) {
    $this->setTitle( 'Whatever You Want Title' );
    }

Este código establecerá el título de la portada independientemente de la forma en que Joomla establece el resto de las páginas. Esto funciona en Joomla 2.5 y creo que también funcionará en la serie 3.x.


Gracias, este fue realmente el método que terminé usando, funciona bien.
MrWhite

4

RS SEO puede hacer esto fuera de la caja. En la configuración, configura cómo desea que se agregue el título del sitio, luego puede editar cualquier página que desee una vez que se ha agregado. Esto es particularmente importante para las páginas que tienen títulos largos que serían demasiado largos si agrega el nombre del sitio al título.


3

Aquí hay cuatro opciones: A) usar el nativo de Joomla antes, después o no. Luego, vaya al elemento del menú de inicio y agregue un título de navegador. Seguirá usando el antes, el después o el no, pero al menos obtendrá un nombre personalizado. Entonces se verá así:

Prestando servicio durante 100 años - Nombre de la empresa

B) Agregue este código debajo de su etiqueta de cuerpo abierto:

 <?php 
 $app = JFactory::getApplication();
 $this->setTitle($this->getTitle().' | '.$app->getCfg('sitename'));
 ?>

Esto le da la opción de usar roturas de tubería en lugar del guión, o algún otro personaje de su elección. También puede, en lugar de usar sitename, poner algo más allí y hacer que se agregue a todos los títulos del navegador.

Prestando servicio por 100 años | nombre de empresa

C) Establezca su Joomla en no. Escriba manualmente todos los títulos del navegador de elementos de menú. No es horrible para sitios más pequeños. Realmente horrible para sitios más grandes.

D) No he probado esto, pero creo que funcionaría. En teoría de todos modos. Agregue una identificación a su página de inicio.

Esto va por encima del doctype:

<?php
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive();
  $pageclass = '';

  if (is_object($menu))
    $pageclass = $menu->params->get('pageclass_sfx');
?>

Y esto reemplaza el cuerpo

<body id="<?php echo $pageclass ? htmlspecialchars($pageclass) : 'default'; ?>">

Ahora agregue una clase a su elemento de menú. Aparecerá como la identificación del cuerpo. AHORA, use el código provisto en la opción D, y coloque una función php alrededor para evitar que se ejecute en la ID del cuerpo de su página de inicio (lo siento, no sé cómo escribir php o lo haría por usted), luego complete el título del navegador en su elemento del menú de inicio. Todo lo demás incluirá el nombre de su sitio, excepto la página de inicio.


Gracias por todas las sugerencias. Para ser sincero, no estoy seguro de cómo Dfuncionaría. Puedo ver que esto podría usarse para cambiar un título en la página con CSS, tal vez, pero realmente necesito escribir en el TITLEelemento. Al final, terminé usando un híbrido suyo By Dsugerencias para verificar primero que el menú actualmente activo es el "predeterminado" (es decir, estamos en la página principal) y luego llamar setTitle()para anular manualmente el título solo para el frente página.
MrWhite

Me refiero a usar el id como elemento en una declaración de php que dice "si este cuerpo tiene este id, no incluya este código que agrega el título del sitio". Pero bueno, si mis divagaciones te dieron una idea, ¡corre con ella!
Faye

3

Hice un módulo que puede asignar a cualquier página y anular el título y la descripción del meta (en realidad es para agregar código personalizado a un sitio y código adicional al encabezado de la página, pero también lo hace).

http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/17842

Establezca la configuración global como desea que sea la mayor parte del sitio y luego use el módulo para orientar páginas específicas.


1

Que yo sepa, no existe tal opción para páginas individuales.

Nunca he intentado esto en el núcleo de Joomla, pero he usado un complemento llamado " generador de SEO " en el pasado, que tiene opciones para personalizar los títulos de las páginas agregando el nombre del sitio (similar a las opciones del núcleo de Joomla), con algunas opciones adicionales. ajustes para un título de página de portada personalizado.

Pero si desea hacer lo mismo para más páginas, este complemento no lo hará, a menos que si modifica su código y lo hace verificar si hay elementos de menú específicos por id que desea aplicar el nombre del sitio adicional.

Es posible que haya otras extensiones que puedan ofrecer la administración de administración de elementos de menú para los que desee tener una configuración especial con respecto al título de la página, pero no conozco ninguno.

Por supuesto, siempre existe la forma manual de escribir el título deseado para cada página.

Sin embargo, el SEO relacionado con el uso del nombre del sitio en todas estas páginas no siempre es la mejor idea.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.