WordPress Italy Forum » Plugin e temi di WP

Meta tag in home.php

(13 articoli)
  1. george
    Membro

    Il problema è questo: ho un sito statico fatto con Wordpress e per avere in homepage una sidebar e nelle altre pagine solo il contenuto, sono andato a modificare direttamente la home.php del mio tema inserendo lì il logo che adesso costituisce, insiema con la sidebar, la mia homepage. Avevo poi aggiunto i meta tag description e keyword all'header.php ma praticamente digitando sul motore di ricerca il nome completo del sito compaiono le altre pagine (Chi siamo, Obiettivi...) e non la homepage. Allora ho installato il plugin "ST4 meta tag" ma praticamente con questo plugin posso inserire i meta tag solo alle altre pagine e non all'homepage che, praticamente, non è una pagina (non è stata creata da "Scrivi/Pagine" come le altre, ma ho appunto modificato direttamente la home.php). Siccome in homepage mi serve una sidebar, mi chiedevo in che modo posso aggiungere i meta tag description e keywords solo all'home.php. E' possibile fare una cosa del genere con Wordpress? Posso copiare tutto il contenuto dell'head (<head></head>) dall'header.php e incollarlo in home.php prima della funzione <?php get_header(); ?>?

    Posted: 3 anni # -
  2. Soluzione è l'uso dei tag condizionali, con is_home (vedi wiki) messo nell'heade puoi far apparire del codice solo se la pagina è quella principale.

    Posted: 3 anni # -
  3. george
    Membro

    Dal wiki ho capito che praticamente potrei far apparire nella pagina principale la sidebar e in tutte le altre no. E quindi potrei scrivere la homepage da "Scrivi/Pagina" invece che da home.php e usare i metatag description e keyword nell'header. Ma in questo modo il problema non sarebbe risolto in quanto essendo la homepage priva di testo e non aggiornata (al contrario ad esempio della pagina "Attività svolte") gli spider non la troverebbero subito.

    Invece tu dicevi che potrei inserire questi tag condizionali nel'header e far apparire del codice (mi interessano solo i metatag) solo se la pagina è quella principale. Ad esempio, se il mio head (<head></head>) fosse questo:

    [N.d.m. - Eliminata una tonnellata di codice non richiesto]

    ..dovrei aggiungere la funzione "if (is_home())" prima dei metatag description e keyword?. Cosa devo scrivere esattamente per avere i metatag description e keyword solo nella pagina principale e non nelle altre pagine (al limite nelle altre pagine li aggiungo dopo con il plugin che ho installato)?

    PS: gli altri metatag (language, robots, distribuition..) possono rimanere in tutte le pagine, a me interessano solo description e keyword.

    Posted: 3 anni # -
  4. Hai letto il wiki sui tag condizionali? ( http://www.wordpress-it.it/wiki/Main/TagCondizionali ) Li c'è pure un esempio di uso dei tag...

    Posted: 3 anni # -
  5. george
    Membro

    L'ho letto e ho visto l'esempio, ma non riesco a capire cosa dovrei scrivere di preciso sull'header. Se dall'header tolgo i metatag description e keyword, ma lascio gli altri (language, robots, distribuition..) e aggiungo una cosa del genere:

    if (is_home()) {
    <meta name="description" content="Il mio sito internet" />
    <meta name="keyword" content="sito, blog, web, forum, wordpress" />;
    }

    Dovrebbe funzionare?

    Posted: 3 anni # -
  6. Ma perché ti vuoi complicare così tanto la vita? usi un sistema come WP e poi ti vai a costruire la home in modo statico senza far uso delle procedure di WP...

    a questo punto allora fatti una pagina statica a tutti gli effetti con i tuoi metatag la sidebar e tutto quello che ti serve e metti WP in una subdirectory e la linki come pagina delle news o blog...

    Personalmente però lo trovo un grossissimo controsenso...

    ritornando al tuo esempio, tutto ciò che si trova nel costrutto

    if is_home(){}

    viene inserito nella pagina solo se si tratta della home page, ma se hai costruito la pagina staticamente quella non sarà mai la tua home page

    per fare che sia trattata come home devi prima di tutto scrivere la pagina come pagina in WP, e andare nelle impostazioni e dire che quella pagina sarà poi la tua home page, altrimenti quel costrutto non funzionerà mai...

    Byez
    --
    Gollum1

    Posted: 3 anni # -
  7. george
    Membro

    Gollum, il tema che uso di default aveva 2 sidebar in ogni pagina, per avere le pagine del tipo "Chi siamo", "Cosa facciamo" senza sidebar ma con solo il contenuto ho tolto da page.php le funzioni <?php include(TEMPLATEPATH."/l_sidebar.php");?> e <?php include(TEMPLATEPATH."/r_sidebar.php");?>, ho impostato come homepage "gli ultimi articoli" e modificato home.php. Scrivendo la homepage da "Scrivi/Pagina" e impostandola come homepage, la sidebar che serve a me automaticamente sparirebbe.

    Forse adesso sto incominciando a capire qualcosina (grazie a voi), potrei modificare page.php in questo modo (per favore ditemi se qualcosa va tolta o aggiunnta):

    <?php get_header(); ?>
    <div id="content">
    <?php if (is_home()) {
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1></h1>
    <?php the_content(__('Read more'));?><div style="clear:both;"></div>
    <?php edit_post_link('Modifica','',''); ?>
    <!--
    <?php trackback_rdf(); ?>
    -->
    <?php endwhile; else: ?>
    <p><?php _e('Nessun articolo trovato.'); ?></p><?php endif; ?>
    <?php posts_nav_link(' — ', __('« go back'), __('keep looking »')); ?>

    <?php include(TEMPLATEPATH."/l_sidebar.php");?>
    <?php include(TEMPLATEPATH."/r_sidebar.php");?>
    } else {
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h1></h1>
    <?php the_content(__('Read more'));?><div style="clear:both;"></div>
    <?php edit_post_link('Modifica','',''); ?>
    <!--
    <?php trackback_rdf(); ?>
    -->
    <?php endwhile; else: ?>
    <p><?php _e('Nessun articolo trovato.'); ?></p><?php endif; ?>
    <?php posts_nav_link(' — ', __('« go back'), __('keep looking »')); ?>
    }
    </div>
    <!-- The main column ends -->
    <?php get_footer(); ?>

    Forse i <?php dentro <?php if (is_home()) {} vanno tolti. Ditemi voi. Ci siamo?

    Posted: 3 anni # -
  8. è sbagliato il concetto... la pagina la scrivi sempre come pagina di wordpress, solo che invece di dargli il template standard gli dici che deve usare un template personalizzato, praticamente copi il template page.php e lo rinomini, togli le sidebars e lo usi come template delle due pagine che ti servono....

    sul wiki se cerchi template trovi tutte le informazioni che ti servono...

    in questo modo tutte le pagine sono pagine di WP, e impostando la pagina principale come home, funzionerà anche quell'IF che volevi inserire...

    Byez
    --
    Gollum1

    Posted: 3 anni # -
  9. george
    Membro

    Innanzitutto grazie gollum per il tempo che stai perdendo con me.

    Praticamente non so come dirgli di usare un template personalizzato per la home. Sul wiki sto ancora cercando, ma non ho trovato nulla.

    Ma dimmi una cosa: se io scrivo la home come pagina di wordpress, la imposto come homepage e poi aggiungo a page.php quel codice che ho scritto nel messaggio precedente, dovrebbe funzionare? Naturalmente quel codice deve essere correto.

    Posted: 3 anni # -
  10. qualcosa di simile a quello che hai scritto potrebbe funzionare, anche se lo semplificherei di molto... invece di fare due volte lo stesso codice, perché uno deve presentare le sidebar e l'altro no, perché non metti soltanto il codice che richiama le due sidebar nell'IF di controllo della pagina? il resto deve comunque esserci in ogni caso...

    per creare un template è abbastanza semplice, crei un file con quel codice che hai inserito, gli metti in testa l'indicazione che si tratta di un template (è un commento da inserire, non mi ricordo di preciso ora, ma basta che sul wiki cerchi la parola template e trovi come formattare un template in modo che poi WP lo possa usare)

    poi crei una semplice pagina con il contenuto che vuoi che sia la tua home, nella schermata di modifica della pagina esiste anche un menù a discesa che ti permette di indicare quale template usare, se hai creato correttamente il tuo template lo trovi in quell'elenco...

    semplice e indolore...

    Byez
    --
    Gollum1

    p.s.: credo che sia ora di andare dalla mia signora, altrimenti prima o poi chiede il divorzio...

    Posted: 3 anni # -
  11. un'ultima cosa, se l'unica differenza tra le pagine normali e le pagine che vuoi che siano la home page sono la presenza o meno delle sidebar, puoi anche risparmiarti la fatica di crearti dei nuovi template... visto che usi il codice if is_home()... puoi farlo anche nel template standard. se ti vai ai leggere il wiki su come gestire le pagine e l'uso dei template, ti renderai conto che con is_page() puoi anche indicare che sia una ben particolare pagina, indicandone il titolo, e quindi con il solo template standard, fare delle modifiche diverse in base a quale pagina stai visualizzando...

    personalmente per pulizia mentale mia preferisco fare dei template ad hoc per ogni pagina, in modo da non dover usare i costrutti IF, ma sono totalmente equivalenti i due approcci...

    Byez
    --
    Gollum1

    Posted: 3 anni # -
  12. george
    Membro

    Ho provato a inserire il codice in page.php ma mi dà errore. Ho provato a fare molte prove togliendo e aggiungendo codice ma non ci sono riuscito.

    Una domanda: se vorrei inserire del codice html dentro le due parentesi graffe di <?php if (is_home()) {} dovrei scrivere prima echo, ma se volessi inserire del codice php esiste un'altra funzione da scrivere prima (sempre se è possibile scriverlo)? L'errore è sicuramente perchè non scrivo correttamente fra le parentesi graffe di <?php if (is_home()) {}.

    Posted: 3 anni # -
  13. george
    Membro

    Dopo molte prove ho deciso di lasciare perdere. Ho optato per una tabella che "simula" una sidebar in homepage.

    Grazie comunque a tutti per la disponibilità.

    A presto.

    Posted: 3 anni # -

RSS feed for this topic

Replica

Devi aver fatto il login per poter pubblicare articoli.