convert_smilies() は、テキスト内の顔文字(例: :) や :D)を対応する画像(<img> タグ)に変換する WordPress の関数です。
この機能は 「投稿設定」 にある 「顔文字を画像に変換して表示する」 オプションが有効な場合に動作します。
主に the_content フィルターの一部として適用され、投稿やコメントの表示時に自動的に変換されます。
目次
基本構文
以下の形式で使用します。
convert_smilies( string $text ): string引き数と戻り値
| 引き数 | 型 | 説明 | 
|---|---|---|
| $text | string, 必須 | 顔文字を含むテキスト。 | 
| 戻り値 | 型 | 説明 | 
|---|---|---|
| なし( void) | (string) | 顔文字を <img>タグに変換した HTML 文字列。 | 
使用例
タグを使った使用例
顔文字を画像に変換する
<?php $text = "Hello! :) How are you?"; $converted_text = convert_smilies($text); echo $converted_text; ?>出力例
Hello! <img src="http://example.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> How are you?注意点
- convert_smilies()は WordPress の 「投稿設定」 のオプションが有効な場合にのみ動作します。
- <code>や- <pre>タグ内では変換されません。
- カスタムフィルターを適用して、特定のテキストに手動適用できます。
良く一緒に使われる関数
get_option()
$use_smilies = get_option('use_smilies'); // 設定の取得the_content()
<?php the_content(); // 投稿の本文を出力(自動的に convert_smilies() が適用) ?>apply_filters()
<?php echo apply_filters('my_plugin_content', 'Hello! :)'); ?>想定されるトラブル
顔文字が画像に変換されない
use_smilies オプションが無効になっている。
解決方法
WordPress の 「投稿設定」 で 「顔文字を画像に変換して表示する」 を有効にする。
特定のタグ内で変換されない
<code> や <pre> タグ内では変換が適用されない。
解決方法
これらのタグ内で顔文字を変換したい場合は、フィルターを適用する。
Q&A
まとめ
convert_smilies() は、WordPress の投稿やコメント内の顔文字を画像に変換する便利な関数です。
「投稿設定」 のオプションが有効な場合に動作し、the_content フィルターを通じて自動適用されます。
カスタムフィルターを追加することで、特定のコンテンツにも適用可能です。顔文字をより視覚的に表現したい場合に活用すると、ユーザーエクスペリエンスの向上につながります。

コメント