WordPress后台统计用户1200字符以上文章数问题求助
解决方案
你的核心问题是SQL查询未过滤文章内容长度,只需修改统计逻辑,在查询中加入内容字符数≥1200的条件即可。
修改思路
- 利用MySQL的
LENGTH()(或CHAR_LENGTH(),针对中文等多字节字符)函数判断文章内容长度 - 将长度条件与
get_posts_by_author_sql生成的作者过滤条件通过AND拼接
修改后的完整代码
function count_manage_users_custom_column($output = '', $column_name, $user_id) { global $wpdb; if( $column_name !== 'post_chars_count' ) return $output; // 修正:返回原output避免影响其他列显示 $where = get_posts_by_author_sql( 'post', true, $user_id ); // 加入内容长度过滤:多字节字符场景请把LENGTH替换为CHAR_LENGTH $result = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where AND LENGTH(post_content) >= 1200" ); return '<a href="' . admin_url("edit.php?post_type=post&author=$user_id") . '" title="Post Type Count">' . $result . '</a>'; } add_filter('manage_users_custom_column', 'count_manage_users_custom_column', 10, 3); function count_manage_users_columns($columns) { $columns['post_chars_count'] = __( 'Articles > 1200 chars', 'textdomain' ); return $columns; } add_filter('manage_users_columns', 'count_manage_users_columns');
关键说明
LENGTH(post_content):统计内容的字节数,适合英文等单字节字符场景- 若站点使用中文、日文等多字节字符,建议改用
CHAR_LENGTH(post_content),它统计实际字符数,避免编码导致的统计偏差 - 原代码中
if分支直接return未返回$output,可能影响其他自定义列显示,已修正
内容的提问来源于stack exchange,提问作者herrfischer
相关产品推荐
相关产品推荐

