Pregunta sobre Developing with WordPress de Wordpress:

Función de conteo de palabras de WordPress

Un usuario preguntó 👇

Hola WPs,

Recientemente agregué esta función corta en function.php porque quería enviar el recuento de palabras a la capa de datos y a través de Google Tag Manager para recopilarlo en Google Analytics.

Todo salió bien, se recopilaron datos, pero hay una diferencia entre los datos enviados a dataLayer en el recuento de palabras en una publicación de blog y el recuento de palabras de datos en la página Editar página en la interfaz de Word Press.

¿Necesito modificar la función a continuación para obtener datos precisos, ya que está claro que contar más de una palabra es una función?

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

¡Gracias!

Este tema fue modificado hace 2 años, 9 meses por.

(@swww)

Hace 2 años, 9 meses

Hola, A continuación se muestra información sobre str_word_count ().

Léelo cuidadosamente.

Para el propósito de esta función, ‘palabra’ se define como una cadena dependiente de la configuración regional que contiene caracteres alfabéticos, que también pueden contener caracteres «‘» y «-«.

Por lo tanto, la configuración regional es importante, asegúrese de que el receptor encuentre la ubicación correcta para los datos que pasa.

En segundo lugar, puede ver exactamente qué palabras se encuentran en sus datos enviando 2 a str_word_count () como segundo argumento.

También puede comparar la salida de la función con una salida dada por un programa de línea de comando baño vea si hay alguna discrepancia. wc -w da el número de palabras en una cadena.

Espero que esto ayude.
[ Signature moderated ]

Esta respuesta fue modificada hace 2 años, 9 meses por. Esta respuesta fue modificada hace 2 años, 9 meses por. Esta respuesta fue modificada hace 2 años, 9 meses por.

(@ afrofever23)

Hace 2 años, 9 meses

Gracias por la respuesta.

¿Dónde puedo obtener datos de str_word_count () para compararlos? Honestamente, no estoy muy familiarizado con php.

Cuando dices wc, ¿te refieres al recuento de palabras sobre el área de publicación de edición?

(@swww)

Hace 2 años, 9 meses

La siguiente línea da el número total de palabras en un tema $ (etiquetas eliminadas)


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

Ahora si:


print_r($word_count)

, verá la cantidad de palabras en $ content.

Hablando de utilidades de wc, tenía un programa de línea de comandos en mente. Está disponible en servidores Unix y Linux. Puede probarlo iniciando sesión a través de ssh y algo como:


wc -w <<< "your content"

Lo anterior le dará el número de palabras entre comillas, es decir 2.

[ Signature moderated ]

Esta respuesta fue modificada hace 2 años, 9 meses por. Esta respuesta fue modificada hace 2 años, 9 meses por.

(@ afrofever23)

Hace 2 años, 9 meses

Bien, pero ¿dónde tengo que alinear la interfaz de WordPress para ver el número total de palabras en $ content?

(@bcworkz)

Hace 2 años, 9 meses

Incluya la línea print_r () en su declaración de función justo encima de la línea de retorno. La salida desde donde se llama a la función se mostrará en una plantilla. Esto puede dañar su código de Google Analytics, dependiendo de cómo se use la función, pero verá el resultado cuando mire la fuente de la página. Es posible que se muestre regularmente en la página, probablemente en la parte inferior. Los detalles dependen de cómo y dónde se llame a la función.

@swww – ¡Gracias por ayudar en los foros! Deje de firmar y publicar la URL del sitio en la parte inferior de su publicación. Es contrario a las directrices del foro. Gracias por entender. ¡Esperamos ver más de sus útiles respuestas aquí!

(@ afrofever23)

Hace 2 años, 9 meses

Gracias por la explicación. Entiendo su entrada, pero no quiero dañar el código GA.

Reformularé mi pregunta.

¿Cómo obtiene WordPress esos recuentos de palabras en la página de publicación y cómo puedo reescribir la función para obtener ese mismo número?

¡Muchas gracias chicos!

(@swww)

Hace 2 años, 9 meses

El número de palabras controladas actualmente por el área de texto del editor se obtiene utilizando no PHP sino JavaScript. Una forma de obtenerlo por sí mismo es un objeto WordCounter de la siguiente manera:


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

Vale la pena señalar que cosas como años o fechas no se consideran palabras por conteo (). Por lo tanto, el código 6 anterior volverá en un cable como este: en 2020 el mundo terminará

Del mismo modo, el siguiente código en PHP:


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

también devolverá 6 como el número de palabras encontradas (de nuevo, la función años no se considera palabras).

Entonces, de un vistazo, para una cadena simple no hay diferencia entre cómo un count () y su código escrito en PHP obtienen el recuento de palabras. Es posible que desee probar cómo funcionan las cosas para contenido formateado más complejo.

Finalmente, probablemente quieras confiar en count () en lugar de en tu código PHP en la cantidad de palabras en tu publicación.

(@bcworkz)

Hace 2 años, 9 meses

Print_r () puede usarse para investigar su código en este punto, pero creo que vale la pena señalar que está destinado a usarse temporalmente. Por lo tanto, las posibilidades de que corrompa su código GA serán insignificantes. En el peor de los casos, provocará un error de JavaScript. No es poca cosa, de todos modos no desea que GA recopile datos de su uso. El secreto de print_r () es poder examinar el valor de una variable. Una vez que se sepa, eliminará o comentará la línea print_r (), restaurando la funcionalidad normal.

El uso de print_r () y su primo var_dump () es una técnica básica de depuración de PHP para verificar variables provisionales en el código. Siempre cambiará la salida en algún lugar de una manera no deseada. Debido a que es temporal, pero proporciona información útil, vale la pena tolerar la interrupción temporal de la salida.

(@ afrofever23)

Hace 2 años, 9 meses

Entiendo.

Básicamente, puedo poner print_r () en functions.php después de mi código inicial y luego ver un valor variable al final del texto de la publicación del blog o no. Tengo curiosidad por saber dónde ver el valor de print_r ().

Gracias por la respuesta. Realmente lo aprecio.

(@swww)

Hace 2 años, 9 meses

Mencioné print_r () como la forma más sencilla de ver qué está pasando en tu código. También puede usar var_dump (). Le dará información más completa. Pruebe ambas funciones y vea cuál prefiere.

Para no buscar la cantidad de palabras que necesita en la pantalla, es posible que desee terminar su script inmediatamente después de llamar a print_r () (o var_dump ()), lo que se puede hacer así:


print_r($word_count);
exit();

Este código se puede colocar en functions.php y salir como lo último que se imprime en la pantalla.

Para obtener más información y ejemplos sobre print_r (), var_dump () y exit (), puede visitar php.net.

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *