DBの記事データに絵文字部分がHTMLエンティティ文字列として入ってしまっている場合、絵文字に一括で置き換える方法です。
1. functions.phpに処理を追加
/テーマディレクトリ/functions.phpに以下の内容を追記します。
function convert_entities_to_emojis() {
global $wpdb;
// wp_postsテーブルから記事データを取得
$posts = $wpdb->get_results("SELECT ID, post_content FROM {$wpdb->posts} WHERE post_content LIKE '%%';");
foreach ($posts as $post) {
// HTMLエンティティを絵文字に変換
$converted_content = html_entity_decode($post->post_content, ENT_NOQUOTES, 'UTF-8');
// 更新クエリを実行
$wpdb->update(
$wpdb->posts,
['post_content' => $converted_content],
['ID' => $post->ID],
['%s'],
['%d']
);
}
echo "変換が完了しました。";
exit;
}
// 管理画面にアクセスしたときに実行
add_action('admin_init', 'convert_entities_to_emojis');
2. 管理画面にアクセスする
管理画面にアクセスすると、先程追記した処理が実行され、データベース内のHTMLエンティティ文字列が絵文字に置換されます。
3. 処理を削除
データベース内の書き換えが完了したら、functions.phpに追記した部分を削除して元の状態に戻します。