Cocoonを使っていて、吹き出しを表示させたかったのですが、
プラグインで違うエディタにしていたため、使うのが面倒だったんですよね。。
なので、ショートコードで表示しようと思ったら、ショートコードがなさげ。。
なので、今回は、Cocoonの吹き出しを表示するショートコードを作ってみました!
目次
使い方
[speech title="男性(左)"]テスト![/speech]
使い方は、タイトルを指定して使います。
タイトルに含むものを検索しています!
ちなみに、タイトルには]
この記号は使わないほうが良いです。
ショートコードの終端文字と同じなので、、
結果
実装
add_shortcode('speech', function ($atts, $content) {
if (!isset($atts['title']) || !$atts['title']) {
return '「title」が指定されていません。';
}
$title = $atts['title'];
$speech_balloon = get_speech_balloons($title);
if (!$speech_balloon) {
return $title . 'で登録されている呼び出しはありません。';
}
if (is_array($speech_balloon)) {
$speech_balloon = $speech_balloon[0];
}
ob_start();
generate_speech_balloon_tag($speech_balloon, $content);
return ob_get_clean();
});
解説
Cocoon内にあった関数を解説しておこうと思います。
get_speech_balloons
get_speech_balloons($title);
この関数で、登録した吹き出しを検索できます。
generate_speech_balloon_tag
generate_speech_balloon_tag($speech_balloon, $content);
この関数は、検索した吹き出し
と内容
をもとに、
吹き出しのHTMLを作ってくれます。