- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Migliorare l'indicizzazione ed il posizionamento - WordPress
-
Migliorare l'indicizzazione ed il posizionamento - WordPress
Ciao Amici.
Vorrei lanciare una campagna nel forum, sperando che ognuno di voi voglia partecipare.
Esistono molti applicativi web che conosciamo, ma non tutti sanno come indicizzarli e migliorare il posizionamento.
Ecco sarebbe bello che chi ha delle conoscenze specifiche su un argomento le postasse aprendo un altro topic.
Ce ne sono molti altri come: Oscommerce, Mambo, Phpnuke ect ect..
Io ho scritto tempo fa quelle sul forum phpbb
http://www.giorgiotave.it/forum/viewtopic.php?t=966&highlight=phpbbOra provo a scrivere qualcosa su WordPress, ringraziando [url=http://www.giorgiotave.it/forum/viewtopic.php?t=2680]Furcas, [url=http://www.giorgiotave.it/forum/viewtopic.php?t=3387&start=30]claudioweb e djmitch.
Allora la prima cosa da sapere è come rendere statici i vostri indirizzi con WordPress.
Se avete LINUX potete abilitare i Permalink dal pannello di controllo>
Opzioni > PermalinkStructure: /index.php/%year%/%monthnum%/%day%/%postname%/
Result: http://www.sito.net/index.php/2005/09/15/sample-post/
Structure: /index.php/archives/%post_id%
Result: http://www.sito.net/index.php/archives/123Se invece avete i server con IIS non è possibile. WordPress permette di raggirare il problema indicando all'inizio della struttura un file di input, ad esempio:
/index.php/archivio/anno/mese/giorno/nome-del-post/
Sul sito però dovete avere l' opzione cgi.fix_pathinfo nel file php.ini sia settata ad 1, e quindi attivata.
Se così non fosse allora agite in due modi:
1)Contattate il proprio provider e chiedere di attivare l'opzione
2)Create con un editor di testo un file che contenga solo queste due righecgi.fix_pathinfo = 1
cgi.force_redirect = 0salvate questo file come php.ini e caricatelo via FTP nella root.
Per quanto riguarda invece la struttura del codice:
In questa fase dobbiamo migliorare le singole pagina, andiamo quindi ad inserire i meta tag keywords (inutile per alcuni motori) e description.
Apriamo il file
wordpress\wp-content\themes\TemaCheUtilizzi\header.phpTrovate
<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> » Blog Archive <?php } ?> <?php wp_title(); ?></title>
Aggiungete
<meta name="keywords" content="<?php bloginfo('name'); ?><?php wp_title(); ?>" /> <meta name="description" content="<?php bloginfo('name'); ?><?php wp_title(); ?>" />
Io sugerisco però di mettere prima il wp_title(); e poi bloginfo('name')
E inoltre eliminerei alcuni indicazione dal titolo che sono quasi inutili.Quindi suggerirei un codice:
```
<title><?php wp_title(); ?> - <?php bloginfo('name'); ?> </title>
<meta name="keywords" content="<?php wp_title(); ?> - <?php bloginfo('name'); ?>" />
<meta name="description" content="<?php wp_title(); ?> - <?php bloginfo('name'); ?>" />Bene per ora è tutto, spero che arrivino utenti per aggiungere le loro gocce di sapere su wordpress e speriamo anche su altri applicativi :) Giorgio
-
mi segno a questo post che mi interessa tantissimo...ora sono di fretta, poi dirò la mia
PS: con Fabio avevamo in mente una mezza idea di crearne uno simile ma che fosse piu sito che blog...
-
Grazie Giorgio per questo tuo spunto, perchè proprio in questi giorni sto iniziando a lavorare su wordpress ed i tuoi consigli, come sempre, saranno di grande aiuto per me e molti altri.
-
-
ho modificato il file header.php di wordpress così:
(la parte inziale è rimasta modificata, ho modifcato solo quello in grassetto)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head profile="http://gmpg.org/xfn/11"> <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /> SOTTO E' LA PARTE MODIFICATA <title> <?php wp_title(); ?> </title> <meta name="keywords" content="<?php wp_title(); ?>" /> <meta name="description" content="<?php wp_title(); ?>" />
ora il titolo della pagina appare così:
» una giornata al mare
» mi son comprato la macchina
...cioè inizia sempre con questo segno** »** !!
voglio togliere** » **
cosa devo modificare per eliminare questo problema???
-
Non ci ho mai pensato, il codice html di quel >> è »
-
Ciao allora la funzione che genera quella stringa si trova nel file wordpress\wp-includes\template-functions-general.php ed e' la seguente:```
function wp_title($sep = '»', $display = true) {
global $wpdb;
global $m, $year, $monthnum, $day, $category_name, $month, $posts;$cat = get_query_var('cat'); $p = get_query_var('p'); $name = get_query_var('name'); $category_name = get_query_var('category_name'); // If there's a category if(!empty($cat)) { if (!stristr($cat,'-')) { // category excluded $title = get_the_category_by_ID($cat); } } if (!empty($category_name)) { if (stristr($category_name,'/')) { $category_name = explode('/',$category_name); if ($category_name[count($category_name)-1]) { $category_name = $category_name[count($category_name)-1]; // no trailing slash } else { $category_name = $category_name[count($category_name)-2]; // there was a trailling slash } } $title = $wpdb->get_var("SELECT cat_name FROM $wpdb->categories WHERE category_nicename = '$category_name'"); } // If there's a month if(!empty($m)) { $my_year = substr($m, 0, 4); $my_month = $month[substr($m, 4, 2)]; $title = "$my_year $sep $my_month"; } if (!empty($year)) { $title = $year; if (!empty($monthnum)) { $title .= " $sep ".$month[zeroise($monthnum, 2)]; } if (!empty($day)) { $title .= " $sep ".zeroise($day, 2); } } // If there's a post if (is_single() || is_page()) { $title = strip_tags($posts[0]->post_title); $title = apply_filters('single_post_title', $title); } // Send it out if ($display && isset($title)) { echo " $sep $title"; } elseif (!$display && isset($title)) { return " $sep $title"; }
}
In particolare ti interessa la prima riga:
function wp_title($sep = '»', $display = true)La variabile ``` $sep = '»' ``` e' proprio il separatore, che di default e' » che corrisponde a ». Se cancelli » dovresti risolvere il tuo problema. Pero' il separatore non uscirebbe piu' nemmeno quando invece servirebbe.
function wp_title($sep = '', $display = true)
La cosa ideale da fare sarebbe fare un semplice copia-incolla e creare una nuova funzione wp_title2, nello stesso file, identica alla prima tranne per il nome e per il fatto che non inserisce il separatore. Cosi' puoi utilizzare quella per inserire i meta tag. :)
-
La cosa ideale da fare sarebbe fare un semplice copia-incolla e creare una nuova funzione wp_title2, nello stesso file, identica alla prima tranne per il nome e per il fatto che non inserisce il separatore. Cosi' puoi utilizzare quella per inserire i Meta Tag
grazie claudioweb
posso chiederti come e dove creare la nuova funzione wp_title2 ?
-
Semplicemente sotto a quella gia' presente:```
function wp_title($sep = '»', $display = true) {
global $wpdb;
global $m, $year, $monthnum, $day, $category_name, $month, $posts;$cat = get_query_var('cat'); $p = get_query_var('p'); $name = get_query_var('name'); $category_name = get_query_var('category_name'); // If there's a category if(!empty($cat)) { if (!stristr($cat,'-')) { // category excluded $title = get_the_category_by_ID($cat); } } if (!empty($category_name)) { if (stristr($category_name,'/')) { $category_name = explode('/',$category_name); if ($category_name[count($category_name)-1]) { $category_name = $category_name[count($category_name)-1]; // no trailing slash } else { $category_name = $category_name[count($category_name)-2]; // there was a trailling slash } } $title = $wpdb->get_var("SELECT cat_name FROM $wpdb->categories WHERE category_nicename = '$category_name'"); } // If there's a month if(!empty($m)) { $my_year = substr($m, 0, 4); $my_month = $month[substr($m, 4, 2)]; $title = "$my_year $sep $my_month"; } if (!empty($year)) { $title = $year; if (!empty($monthnum)) { $title .= " $sep ".$month[zeroise($monthnum, 2)]; } if (!empty($day)) { $title .= " $sep ".zeroise($day, 2); } } // If there's a post if (is_single() || is_page()) { $title = strip_tags($posts[0]->post_title); $title = apply_filters('single_post_title', $title); } // Send it out if ($display && isset($title)) { echo " $sep $title"; } elseif (!$display && isset($title)) { return " $sep $title"; }
}
function wp_title2($sep = '', $display = true) {
global $wpdb;
global $m, $year, $monthnum, $day, $category_name, $month, $posts;$cat = get_query_var('cat'); $p = get_query_var('p'); $name = get_query_var('name'); $category_name = get_query_var('category_name'); // If there's a category if(!empty($cat)) { if (!stristr($cat,'-')) { // category excluded $title = get_the_category_by_ID($cat); } } if (!empty($category_name)) { if (stristr($category_name,'/')) { $category_name = explode('/',$category_name); if ($category_name[count($category_name)-1]) { $category_name = $category_name[count($category_name)-1]; // no trailing slash } else { $category_name = $category_name[count($category_name)-2]; // there was a trailling slash } } $title = $wpdb->get_var("SELECT cat_name FROM $wpdb->categories WHERE category_nicename = '$category_name'"); } // If there's a month if(!empty($m)) { $my_year = substr($m, 0, 4); $my_month = $month[substr($m, 4, 2)]; $title = "$my_year $sep $my_month"; } if (!empty($year)) { $title = $year; if (!empty($monthnum)) { $title .= " $sep ".$month[zeroise($monthnum, 2)]; } if (!empty($day)) { $title .= " $sep ".zeroise($day, 2); } } // If there's a post if (is_single() || is_page()) { $title = strip_tags($posts[0]->post_title); $title = apply_filters('single_post_title', $title); } // Send it out if ($display && isset($title)) { echo " $sep $title"; } elseif (!$display && isset($title)) { return " $sep $title"; }
}
Il copia-incolla e' il miglior amico dei programmatori ;)
-
ok, quindi:
-
creo wp_title2 nel file "wordpress\wp-includes*template-functions-general.php*"
-
modifico nel file "header.php"
<title> <?php wp_title(); ?> </title>
con
<title> <?php wp_title2(); ?> </title>
GIUSTO???
PS. ma aggiungere tutto quell'altro codice nel file "wordpress\wp-includes*template-functions-general.php*" non è che rende troppo pesante il processo???
-
-
@platinum said:
ok, quindi:
-
creo wp_title2 nel file "wordpress\wp-includes*template-functions-general.php*"
-
modifico nel file "header.php"
<title> <?php wp_title(); ?> </title>
con
<title> <?php wp_title2(); ?> </title>
GIUSTO???
PS. ma aggiungere tutto quell'altro codice nel file "wordpress\wp-includes*template-functions-general.php*" non è che rende troppo pesante il processo???Si giusto. Non si tratta di operazioni che richiedono grandi risorse... sono solo poche righe. Il server dovra' solo lavorare un pochino in piu', mentre il codice che gli utenti del sito vedranno sara' pulito come prima.
Certo si potrebbe anche provare a riscriverla un po' piu' snella la funzione, dovrebbero bastare solo poche righe di codice. Ma alla fine il risultato non cambia... quindi mi risparmio la fatica
-
-
claudioweb ti ringrazio non solo per la mano che mi hai dato nel postare il codice modificato, ma soprattutto per la chiarezza espositiva
-
<title> <?php wp_title2(); ?> - <?php bloginfo('name'); ?> - </title> <meta name="keywords" content="<?php wp_title2(); ?>" /> <meta name="description" content="<?php wp_title2(); ?>" />
solo per precisione: per quanto riguarda il <title> conviene adottare questo formato con "-" ai lati di <?php bloginfo('name'); ?> per una maggiore chiarezza visiva nel title
oppure usare ":" o "|" o un altro segno
questo per evitare che in categorie, archivi e altrove si creino confusioni tra titolo del blog e titolo dell'articolo (post)
-
In generale userei | ma in questo caso per uniformarmi a wordpress userei proprio » cioe' » .
-
Visto che mi sembra (In Topic) segnalo questo post per l'ottimizzazione di WP: http://www.yellow-llama.com/2005/seo-your-wordpress-blog/