Un utente ha chiesto informazioni su Developing with WordPress di Wordpress

Funzione di conteggio parole di WordPress

Un utente ha chiesto 👇

Ciao WPs,

Recentemente ho inserito questa breve funzione in function.php perché volevo inviare il conteggio delle parole a un livello dati e tramite Google Tag Manager per raccoglierlo in Google Analytics.

Tutto è andato liscio, i dati sono stati raccolti ma c’è una differenza tra i dati inviati a dataLayer sul conteggio delle parole in un post del blog e il conteggio delle parole dei dati nella pagina Modifica pagina nell’interfaccia di Word Press.

Devo modificare la funzione di seguito per ottenere dati accurati poiché è chiaro che contare più di una parola è una funzione?

function word_count() {
    $content = get_post_field( 'post_content', $post->ID );
    $word_count = str_word_count( strip_tags( $content ) );
    return $word_count;
}

Grazie!

Questo argomento è stato modificato 2 anni, 10 mesi fa da.

(@swww)

2 anni, 10 mesi fa

Ciao,
Di seguito sono riportate alcune informazioni su str_word_count ().

Leggilo attentamente.

Ai fini di questa funzione, “parola” è definita come una stringa dipendente dalla lingua contenente caratteri alfabetici, che possono contenere anche caratteri “‘” e “-“.

Quindi la localizzazione è importante, assicurati che il destinatario trovi la giusta localizzazione per i dati che passi.

In secondo luogo, puoi vedere esattamente quali parole si trovano nei tuoi dati inoltrando 2 a str_word_count () come secondo argomento.

È inoltre possibile confrontare l’output della funzione con un output fornito da un programma a riga di comando gabinetto vedere se ci sono discrepanze. wc -w fornisce il numero di parole in una stringa.

Spero che questo aiuti.
[ Signature moderated ]

Questa risposta è stata modificata 2 anni, 10 mesi fa da. Questa risposta è stata modificata 2 anni, 10 mesi fa da. Questa risposta è stata modificata 2 anni, 10 mesi fa da. Lanciatore di thread

(@ afrofever23)

2 anni, 10 mesi fa

Grazie per la risposta.

Dove posso ottenere dati da str_word_count () per il confronto? Onestamente non ho molta familiarità con php.

Quando dici wc-intendi il conteggio delle parole nell’area di modifica del post?

(@swww)

2 anni, 10 mesi fa

La riga seguente fornisce il numero totale di parole in un argomento $ (tag rimossi)


$word_count = str_word_count( strip_tags( $content ) );

Ora se:


print_r($word_count)

, vedrai il numero di parole in $ content.

Parlando di utilità per wc, avevo in mente un programma a riga di comando. È disponibile su server Unix e Linux. Puoi provarlo accedendo tramite ssh e qualcosa di simile:


wc -w <<< "your content"

Quanto sopra ti darà il numero di parole tra virgolette, ovvero 2.

[ Signature moderated ]

Questa risposta è stata modificata 2 anni, 10 mesi fa da. Questa risposta è stata modificata 2 anni, 10 mesi fa da. Lanciatore di thread

(@ afrofever23)

2 anni, 10 mesi fa

Ok, ma dove devo inserire la riga nell’interfaccia di WordPress per vedere il numero totale di parole in $ content?

(@bcworkz)

2 anni, 10 mesi fa

Posiziona la riga print_r () all’interno della dichiarazione di funzione appena sopra la riga di ritorno. L’output da cui viene chiamata la funzione verrà visualizzato su un modello. Ciò potrebbe danneggiare il codice di Google Analytics, a seconda di come viene utilizzata la funzione, ma vedrai il risultato quando guardi l’origine della pagina. Può essere visualizzato regolarmente sulla pagina, probabilmente nella parte inferiore della pagina. I dettagli dipendono da come e dove viene chiamata la funzione.

@swww – Grazie per l’aiuto nei forum! Smetti di firmare e pubblicare l’URL del sito in fondo al tuo post. È contrario alle linee guida del forum. Grazie per la comprensione. Ci auguriamo di vedere più risposte utili qui!

Lanciatore di thread

(@ afrofever23)

2 anni, 10 mesi fa

Grazie per la spiegazione. Capisco il tuo input ma non voglio corrompere il codice GA.

Riformulerò la mia domanda.

In che modo WordPress ottiene quei conteggi di parole nella pagina Post e come posso riscrivere la funzione per ottenere lo stesso numero?

Grazie mille ragazzi!

(@swww)

2 anni, 10 mesi fa

Il numero di parole attualmente controllate dall’editor dell’area di testo si ottiene utilizzando non PHP ma JavaScript. Un modo per ottenerlo da soli è un oggetto WordCounter come segue:


var counter = new window.wp.utils.WordCounter();
var str = document.getElementById('content').value
counter.count(str)

Vale la pena notare che cose come anni o date non sono considerate parole da count (). Quindi, il codice 6 di cui sopra tornerà su un filo come questo: nel 2020 il mondo finirà

Allo stesso modo, il codice seguente in PHP:


print_r(str_word_count(strip_tags("in 2020 the world will have ended")));   

6 restituirà anche il numero di parole trovate (di nuovo l’anno in cui la funzione non è considerata parole).

Quindi, a colpo d’occhio, per una stringa semplice non c’è differenza tra il modo in cui un count () e il tuo codice scritto in PHP ottengono il conteggio delle parole. Potresti voler testare come stanno le cose per contenuti più complessi e formattati.

Infine, probabilmente vorrai fidarti di count () piuttosto che del tuo codice PHP sul numero di parole nel tuo post.

(@bcworkz)

2 anni, 10 mesi fa

Print_r () può essere utilizzato per indagare sul codice a questo punto, ma penso che valga la pena notare che è destinato ad essere utilizzato temporaneamente. Quindi le possibilità che corrompa il tuo codice GA saranno trascurabili. Nel peggiore dei casi, causerà un errore JavaScript. Non è una cosa da poco, non vuoi davvero che GA raccolga comunque i dati dal tuo utilizzo. Il segreto di print_r () è poter esaminare un valore variabile. Una volta noto, rimuovere o commentare la riga print_r (), ripristinando la normale funzionalità.

L’uso di print_r () e di sua cugina var_dump () è una tecnica di debug PHP di base per controllare le variabili temporanee nel codice. Cambierà sempre l’output da qualche parte in modo indesiderato. Poiché è temporaneo, ma fornisce informazioni utili, vale la pena tollerare l’interruzione temporanea dell’output.

Lanciatore di thread

(@ afrofever23)

2 anni, 10 mesi fa

Capisco.

Fondamentalmente posso mettere print_r () in functions.php dopo il mio codice iniziale e poi vedere un valore variabile alla fine del testo del post sul blog o no? Sono curioso di dove vedere il valore di print_r ()?

Grazie per la risposta. Lo apprezzo davvero.

(@swww)

2 anni, 10 mesi fa

Ho menzionato print_r () come il modo più semplice per vedere cosa sta succedendo nel tuo codice. Puoi anche usare var_dump (). Ti darà informazioni più complete. Prova entrambe le funzioni e vedi quale preferisci.

Per non cercare il numero di parole necessarie sullo schermo, potresti voler terminare lo script immediatamente dopo aver chiamato print_r () (o var_dump ()), cosa che può essere eseguita in questo modo:


print_r($word_count);
exit();

Questo codice può essere inserito in functions.php e visualizzato come l’ultima cosa stampata sullo schermo.

Per ulteriori informazioni ed esempi su print_r (), var_dump () e exit () potresti visitare php.net.

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *