web-dev-qa-db-fra.com

Nombre total de mots pour les messages et les commentaires d'un auteur

Comment compter les mots dans les posts + tags + commentaires et afficher le nombre total de mots utilisés par chaque auteur?

2
user55179

Exécutez quelques requêtes et un extrait de code pour calculer le nombre de mots pour le contenu de la publication, le contenu des commentaires et les noms de balise de chaque publication.

// This query will return the number of words in the post content
$post_qry="SELECT LENGTH(post_content) - LENGTH(REPLACE(post_content, ' ', ''))+1 
from wp_posts where ID=".$post_id;
// This query will return the number of words in all comments for this post
$comment_qry="SELECT SUM(LENGTH(comment_content) - LENGTH(REPLACE(comment_content, ' ', ''))+1) 
from wp_comments where comment_post_ID=".$post_id;

$post_tags = get_the_tags();
$tag_words=0;
if ($post_tags) {
  foreach($post_tags as $tag)
  {
    $parts=explode(' ',$tag->name);
    $tag_words+=count($parts);
  }
}
$total_words=$post_words+$comment_words+$tag_words;

Je n'ai inclus aucun code pour exécuter les requêtes car tout le monde semble avoir sa propre façon de le faire. Le plus gros défaut de cette approche est qu’elle compte toutes les chaînes séparées par des espaces. Si vos auteurs peuvent faire des insertions multimédia, les images/vidéos sous-titrées gonfleront le nombre de mots.

Si la perfection est requise, modifiez les requêtes pour obtenir tout le texte (ne comptez pas dans mysql). Puis exécutez quelques fonctions regex pour supprimer HTML et le contenu spécial WP comme les éléments multimédias. Pour finir, exploser les chaînes restantes dans l’espace et compter les tableaux.

Je ne sais pas comment atteindre la perfection absolue. Pour moi, la première approche suffit.

1
Ray N. Franklin