SO网友:Ray N. Franklin
运行两个查询和一个代码段来计算每篇文章的帖子内容、评论内容和标记名的字数。
// 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;
我没有包含任何执行查询的代码,因为每个人似乎都有自己的方式。这种方法最大的缺陷是它计算所有空格分隔的字符串。如果您的作者可以插入媒体,那么这些标题图像/视频将增加字数。
如果需要近乎完美的查询,那么将查询更改为只获取所有文本(mysql中不计算在内)。然后运行一些正则表达式函数来去除HTML和WP特殊内容,如媒体项。最后,分解空间上剩余的字符串并计算数组数。
我不知道如何达到绝对的完美。对我来说,第一种方法已经足够好了。