您可以使用数据库中的命令执行此操作:
UPDATE `wp_posts` /* Adjust the prefix! */
SET `post_title` = CONCAT(
UCASE( /* First letter uppercase */
SUBSTRING(
`post_title`, 1, 1
)
),
\'\',
LCASE( /* The rest in lowercase */
SUBSTRING(
`post_title`, 2, LENGTH(`post_title`)
)
)
);
如果您的作者有发布大写标题的习惯,您可以为每个插件添加一个过滤器,以便在添加新帖子时更改标题:
add_filter( \'wp_insert_post_data\', function( array $data ) {
// list of words not to change
$protected_words = [
\'SQL\',
\'CSS\',
\'BBC\'
];
if ( empty( $data[\'post_title\'] ) )
return $data;
$words = explode( \' \', $data[\'post_title\'] );
$words = array_map( function( $word ) use ( $protected_words ) {
return in_array( $word, $protected_words )
? $word
: mb_strtolower( $word, \'UTF-8\' );
}, $words );
// There is no mb_ucfirst()
$words[0] = mb_convert_case( $words[0], MB_CASE_TITLE, "UTF-8");
$data[\'post_title\'] = join( \' \', $words );
return $data;
});