Comment ajouter le titre du site à toutes les pages sauf la première page?


8

Dans la configuration globale de Joomla 2.5 sous SEO, il y a l'option «Inclure le nom du site dans les titres de page», avec les options «Après», «Avant» ou «Non». Cependant, comment inclure le nom du site ("Après") sur toutes les pages à l' exception de la première page? (Et peut-être aussi pour d'autres pages?)

C'est sur Joomla 2.5, cependant, je voudrais également savoir si le processus est différent dans Joomla 3.

Les fonctionnalités de base ou les solutions de code manuel sont préférées. Cependant, s'il existe des extensions appropriées qui offrent cette fonctionnalité, n'hésitez pas à les suggérer également.


1
Je ne sais pas avec certitude, mais je soupçonne que la réponse est que vous ne pouvez pas sans extension (ou mod pour le modèle). Je suis curieux de connaître la réponse moi-même :)
Brian Peat

Réponses:


7

Pour définir le titre de la page d'accueil différemment du titre des autres pages, ajoutez le code suivant au fichier modèle index.php vers la fin des informations d'en-tête.

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

Ce code définira le titre de la première page indépendamment de la façon dont Joomla définit le reste des pages. Cela fonctionne sur Joomla 2.5 et je pense que cela fonctionnera également dans la série 3.x.


Merci, c'est en fait la méthode que j'ai fini par utiliser - fonctionne bien.
MrWhite

4

RS SEO peut le faire hors de la boîte. Dans la configuration, vous définissez la façon dont vous souhaitez ajouter le titre du site, puis vous pouvez modifier n'importe quelle page que vous souhaitez une fois qu'il a été ajouté. Ceci est particulièrement important pour les pages qui ont des titres longs qui seraient trop longs si vous ajoutez le nom du site au titre.


3

Quatre options ici: A) utiliser le natif de Joomla avant, après ou non. Ensuite, allez dans votre élément de menu d'accueil et ajoutez un titre de navigateur. Il utilisera TOUJOURS l'avant, après ou non, mais au moins vous en tirerez un nom personnalisé. Cela ressemblera donc à:

Prestation de services pendant 100 ans - Nom de l'entreprise

B) Ajoutez ce code sous votre balise ouverte:

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

Cela vous donne la possibilité d'utiliser des ruptures de tuyau au lieu du tiret, ou un autre caractère de votre choix. Vous pouvez également, au lieu d'utiliser le nom de site, y mettre quelque chose d'autre et l'ajouter à tous les titres du navigateur.

Prestation de services depuis 100 ans | Nom de la compagnie

C) Réglez votre Joomla sur non. Écrivez manuellement tous les titres du navigateur des éléments de menu. Pas horrible pour les petits sites. Vraiment horrible pour les grands sites.

D) Je n'ai pas essayé cela, mais je pense que cela fonctionnerait. En théorie en tout cas. Ajoutez un identifiant à votre page d'accueil.

Cela va au-dessus du doctype:

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

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

Et cela remplace le corps

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

Ajoutez maintenant une classe à votre élément de menu. Il apparaîtra comme l'ID du corps. MAINTENANT, utilisez le code fourni dans l'option D, et lancez une fonction php autour d'elle pour l'empêcher de s'exécuter sur le corps ID de votre page d'accueil (désolé, je ne sais pas comment écrire php ou je le ferais pour vous), puis remplissez le titre du navigateur dans votre élément de menu d'accueil. Tout le reste aura le nom de votre site ajouté, mais la page d'accueil.


Merci pour toutes les suggestions. Pour être honnête, je ne sais pas comment Dcela fonctionnerait? Je peux voir que cela pourrait être utilisé pour changer un titre sur la page avec CSS peut-être, mais j'ai besoin d'écrire dans l' TITLEélément. En fin de compte, j'ai fini par utiliser un hybride de vos Bet Dsuggestions d'abord vérifier que le menu actuellement actif est le « défaut » (ie. , Nous sommes sur la première page), puis appeler setTitle()à remplacer manuellement le titre juste pour l'avant page.
MrWhite

Je veux dire utiliser l'identifiant comme élément dans une déclaration php qui dit "si ce corps a cet identifiant, n'incluez pas ce code qui ajoute le titre du site". Mais bon, si mes divagations vous ont donné une idée, courez avec!
Faye

3

J'ai créé un module que vous pouvez attribuer à n'importe quelle page et remplacer le titre et la description du méta (c'est en fait pour ajouter du code personnalisé à un site et du code supplémentaire à la tête de page, mais il le fait également).

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

Définissez la configuration globale de la façon dont vous souhaitez que la majeure partie du site soit, puis utilisez le module pour cibler des pages spécifiques.


1

Pour autant que je sache, il n'y a pas une telle option pour les pages individuelles.

Je n'ai jamais essayé ceci sur le core joomla, mais j'ai utilisé un plugin nommé " SEO generator " dans le passé, qui a des options pour personnaliser les titres des pages en ajoutant le nom du site (similaire aux options du joomla core), avec quelques extra paramètres pour un titre de page d'accueil personnalisé.

Mais si vous voulez faire la même chose pour plus de pages, ce plugin ne le fera pas, sauf si vous modifiez son code et lui faites vérifier des éléments de menu spécifiques par id que vous souhaitez appliquer le nom de site supplémentaire.

Il pourrait y avoir d'autres extensions qui pourraient offrir une gestion administrative des éléments de menu que vous souhaitez avoir des paramètres spéciaux concernant le titre de la page, mais je n'en connais pas.

Bien sûr, il y a toujours la manière manuelle où vous pouvez écrire le titre souhaité pour chaque page.

Cependant, le référencement concernant l'utilisation du nom du site dans toutes ces pages n'est pas toujours la meilleure idée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.