- Home
- Categorie
- Coding e Sistemistica
- PHP
- Meta tag description diverso per ogni pagina
-
Meta tag description diverso per ogni pagina
Ciao a tutti, è da un'ora che spulcio il forum in cerca di una risposta al mio quesito, ma nonostante esistano già discussioni di questo genere, non ne sono venuto a capo.
Ho un sito in php, strutturato similmente ad un template wordpress, quindi con una serie di moduli caricati tramite "include".
Attualmente ho il meta tag description (come anche il keywords)presente nel modulo head.php, il quale è chiaramente caricato in ogni pagina del sito. Come conseguenza, il meta description è identico in tutte le pagine.
Qual è il modo più semplice per diversificare il meta description per ogni pagina?
Cercando qua e là ho capito che si può fare una cosa di questo tipo: creare prima di tutto un modulo chiamato ad esempio metatags.php, dentro al quale inserire una cosa del genere:
[PHP]<?php
if (pagina1.html) {
$descrizione = "La descrizione della pagina 1";
}if (pagina2.html){
$descrizione = "La descrizione della pagina 2";
}ecc.
?>[/PHP]
Dopodiché richiamare tale modulo nell'head.php attraverso include e per ogni pagina nel meta tag description inserire come valore di content $description.
A parte che non so assolutamente se la sintassi possa funzionare, oltre al funzionamento in sé della cosa, mi sorge un dubbio: in ogni pagina è richiamato l'head.php...dove vado a mettere il meta tag description?! Si può creare lo stesso un header in html (<head></head>) nonostante la chiamata dell'head.php? Non si avrebbe così un header doppio?
Attendo il vostro aiuto.
Ale
-
Ciao Alecss,
dovresti mettere la stampa della variabile all'interno del head, che essendo già separato non dovrebbe essere un problema.
L'if non va fatto esattamente in quel modo, ma devi confrontarlo nell'if con l'url richiesto.
-
Non sono pratico di php, non ho capito molto bene ciò che mi hai scritto.
Ho elaborato insieme ad un amico un'altra possibilità: dichiarare nella pagina che richiama head.php una variabile prima dell'include, ad esempio page1.
Poi nell'if di head.php inserire una nuova condizione. Ed uscirebbe questo:
Nelle pagine che richiamano head.php (e quindi in tutte le pagg del sito) andrà questo:
[PHP]
$page = 'pagina1'
[/PHP]Mentre in head.php andrà questo:
[PHP]
if( $page == 'pagina1' ){$descrizione = "La descrizione della pagina 1";
}
if ($page == 'pagina2' )
{$descrizione = "La descrizione della pagina 2";
}
ecc...
[/PHP]In questo modo si evita di creare un modulo in più e di conseguenza un'ulteriore chiamata al server.
Sicuramente ci saranno problemi di sintassi o mancherà qualcosa, tipo quello che mi hai scritto prima. Ma come logica può funzionare?
Se sì, potresti gentilmente spiegarmi a livello di sintassi come va scritto? Ti ringrazio.
Ale
-
Dimenticavo, ora ho fatto un esempio con la dichiarazione di una variabile. La variabile alla fine sarà sempre una, $page, ma avrà valori diversi. Quindi dovrei specificare nella dichiarazione ogni singolo valore che può assumere?
-
Ma scrivere una funzione da richiamare in ogni pagina, passandole il valore desiderato, no ?
[php]
function meta_tag($description)
{
echo '<meta name="description" content=" ' .$description. ' " />';
}
[/php]Pagina 1
[php]
$description = "La descrizione della pagina 1";
meta_tag($description);
[/php]Pagina 2
[php]
$description = "La descrizione della pagina 2";
meta_tag($description);
[/php]Chiaramente è un esempio da implementare
-
Potresti anche fare qualcosa del genere:
Una pagina head.php contenente:
[php]...
<meta name="description" content=<?php echo $description; ?>" />
...[/php]poi chiami la pagina che genera il template così:
[php]<?php $description="Il tuo contenuto del meta tag";
include('head.php'); ?>[/php]Ciao,
Luca Bartoli
-
Grazie Luca, sembra molto semplice e funzionale. Lo proverò e poi ti dico.