Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687

    Problemi con funzione contatore visite

    Salve
    Ho trovato un bellissimo script che mi inserisce il numero delle visite negli articoli.
    Però ho un problema mi inserisce uno 0 prima dell'articolo.
    Lo script funziona ma come faccio a levare quello 0 brutto a vedersi?
    Questo è il codice:
    Codice PHP:
    // Funzione per aggiornare il campo personalizzato// contenente il numero delle visualizzazioni del postfunction my_track_post_views(){  if (is_singular() and !is_admin())   {    $count = get_post_meta(get_the_ID(),'_post_views',true);     // Se non trovo il valore o per caso contiene    // dei valori non numerici inizializzo il contatore      if (!is_numeric($count) or $count == '') {      delete_post_meta(get_the_ID(),'_post_views');      add_post_meta(get_the_ID(),'_post_views','1');    }     // Aggiornamento del contatore "custom post field"    update_post_meta(get_the_ID(),'_post_views',$count+1);  }} // Aggiungo la funzione su azione wp_head in maniera// da essere eseguita durante il caricamento inizialeadd_action('wp_head','my_track_post_views'); 
    Io ho inserito questo di richiamo:

    Codice PHP:
     - Scheda visitata&nbsp<strong><?php echo get_track_post_views(); ?></strong>&nbspvolte
    è ok?

    Thanks
    Daniele

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, intanto l'echo non serve e nemmeno il richiamo stesso. Avendo usate add_action('wp_head',....) viene richiamata comunque al caricamento di pagina.
    echo '0'; molto probabilmente e' dovuto al fatto che non ritorna nulla e WP ti printa uno 0.
    Per la funzione setessa volendo, non serve usare delete_post_meta() e poi add_post_meta).
    Puoi direttamente usare update_post_meta() che di suo controlla se esiste e nel caso crea e /o aggiorna.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao, intanto l'echo non serve e nemmeno il richiamo stesso. Avendo usate add_action('wp_head',....) viene richiamata comunque al caricamento di pagina.
    echo '0'; molto probabilmente e' dovuto al fatto che non ritorna nulla e WP ti printa uno 0.
    Per la funzione setessa volendo, non serve usare delete_post_meta() e poi add_post_meta).
    Puoi direttamente usare update_post_meta() che di suo controlla se esiste e nel caso crea e /o aggiorna.
    Ciao.
    Non sono molto esperto di programmazione. Mi hai ubriacato con tutte queste funzioni...
    Puoi spiegare il tutto con parole più semplici?
    Scusami ma sai com'è non sono un programmatore...

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, per quel che ti interessa puoi togiere <?php echo get_track_post_views();
    La pagina di suo la richiama sul caricamento dell'head stesso ogni volta che carichi una pagina o articolo.
    Se non sei esperto di programmazione cosi' com'e' funziona comunque.
    potresti semplicemente eliminare delete_post_meta(get_the_ID(),'_post_views'); add_post_meta(get_the_ID(),'_post_views','1'); e mettere solo update_post_meta(get_the_ID(),'_post_views','1');

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao, per quel che ti interessa puoi togiere <?php echo get_track_post_views();
    La pagina di suo la richiama sul caricamento dell'head stesso ogni volta che carichi una pagina o articolo.
    Se non sei esperto di programmazione cosi' com'e' funziona comunque.
    potresti semplicemente eliminare delete_post_meta(get_the_ID(),'_post_views'); add_post_meta(get_the_ID(),'_post_views','1'); e mettere solo update_post_meta(get_the_ID(),'_post_views','1');
    Sei sicuro che funziona!! se metto tutto quello nel function e non metto il richiamo non va...

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, cosi' dovrebbe essere corretto, mi pare strano non funzioni.
    Codice PHP:
    my_track_post_views(){  if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         }   }       add_action('wp_head','my_track_post_views'); 
    update_post_meta() crea se non esiste o aggiorna.
    Ho aggiunto un else altrimenti se non esiste e setti di default 1 subito dopo facevi ancora +1;

    add_action(...) dove l'hai inserito? dovrebbe stare in functions.php del tema e bell'header.php ci dev'essere il richiamo di wp_head() o non può andare.

    Che errori ti da??

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Ciao, cosi' dovrebbe essere corretto, mi pare strano non funzioni.
    Codice PHP:
    my_track_post_views(){  if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         }   }       add_action('wp_head','my_track_post_views'); 
    update_post_meta() crea se non esiste o aggiorna.
    Ho aggiunto un else altrimenti se non esiste e setti di default 1 subito dopo facevi ancora +1;

    add_action(...) dove l'hai inserito? dovrebbe stare in functions.php del tema e bell'header.php ci dev'essere il richiamo di wp_head() o non può andare.

    Che errori ti da??
    Mi da errore linea codice linea all'incirca dove c'è quel codice che mi hai detto di sostituire.
    Se lo metto com'era il vecchio non mi da errore ma se non metto il richiamo del php in una pagina non da niente.
    Provo a mettere quel codice nell'head che non l'ho fatto ma devo metterlo anche il function quel codice o olo nell'head?

  8. #8
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Il codice cosi' che ti ho postato andrebbe messo nel functions.php.
    Ci pensa add_action() a caricarlo ad ogni caricamento pagina (wp_head() dev'essere presente in header.php pero').
    Se usi add_action() quindi, non serve richiamarlo a mano nei template.
    In alternativa puoi mettere il codice nei singoli template( es single.php )
    Codice PHP:
    if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         } 
    senza la parte di add_action() cosi' come scritto qui sopra oppure creare in functions.php
    Codice PHP:
    my_track_post_views(){  if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         }   } 
    e nei singoli template richiamare solo my_track_post_views();

    Che errori ti da esattamente?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2003
    residenza
    Prato
    Messaggi
    687
    Quote Originariamente inviata da m4rko80 Visualizza il messaggio
    Il codice cosi' che ti ho postato andrebbe messo nel functions.php.
    Ci pensa add_action() a caricarlo ad ogni caricamento pagina (wp_head() dev'essere presente in header.php pero').
    Se usi add_action() quindi, non serve richiamarlo a mano nei template.
    In alternativa puoi mettere il codice nei singoli template( es single.php )
    Codice PHP:
    if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         } 
    senza la parte di add_action() cosi' come scritto qui sopra oppure creare in functions.php
    Codice PHP:
    my_track_post_views(){  if (is_singular() and !is_admin())   {    $count get_post_meta(get_the_ID(),'_post_views',true);   if (!is_numeric($count) or $count == '') {       $count 1;       delete_post_meta(get_the_ID(),'_post_views');       add_post_meta(get_the_ID(),'_post_views'$count);       }else{       update_post_meta(get_the_ID(),'_post_views',$count+1);     }         }   } 
    e nei singoli template richiamare solo my_track_post_views();

    Che errori ti da esattamente?
    L'ho levata!!! Non posso lasciare script con errori in un sito dove google entra già ad indicizzare. Non ricordo!!!! Comunque ci rinuncio a questa funzione che tanto non è molto fondamentale per il sito. Mi serve un qualcosa che mi dia la possibilità di dividere le categorie in diversi menù a tendina sai come il classico delle categorie ma non uno solo ma diviso in diversi. Si può fare? Mi va bene anche un plugin purchè sia semplice da settare....

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.