WordPressテーマSANGOの質問

吹き出しショートコードをカスタマイズしたい

アバター
tomoトモ

使い心地とみやすさの素晴らしいテンプレートをありがとうございます。

「会話吹き出し」で表示されるimg タグにalt タグを入れたく、 style-shortcode.php を拝見いたしました。

当方にて変更はできそうなのですが、親テーマなので、アップデート後上書きされるかと思い躊躇しています。

子テーマ側で制御できないかどうか調べているとこですが、そのようなことは可能なのでしょうか。

SANGOのショートコード一覧
SANGOのショートコード一覧
コメントへの回答
サルワカくん
サルワカくん
2018/02/21

お世話になっております。
その場合、別のショートコードを作った方が何かと自由に編集出来て良いかと思います。
子テーマのfunctions.phpに以下のコードを貼り付ければ、saybという名前のショートコードで吹き出しが使えるようになります。
(機能はsayと同じ。★の部分にaltテキストを入れればOKです。)

/*********************
新会話ふきだし
*********************/
add_shortcode('sayb','say_what_new');
function say_what_new($atts, $content = null) {
	if($atts) {
		$img = (isset($atts['img'])) ? esc_url($atts['img']) : null;
		$name = (isset($atts['name'])) ? esc_attr($atts['name']) : '';
		if(isset($atts['from'])){
			$from = ($atts['from']=="right") ? "right" : "left";//入力が無ければleftに
		} else {
			$from = "left";
		}
		if($img && $from =="right"){//右に吹き出し
			$output = <<<EOF
				<div class="say {$from}">
					<div class="chatting"><div class="sc">{$content}</div></div>
					<p class="faceicon"><img src="{$img}" alt="★"><span>{$name}</span></p>
				</div>
EOF;
		} else {//左に吹き出し
			$output = <<<EOF
				<div class="say {$from}">
					<p class="faceicon"><img src="{$img}"><span>{$name}</span></p>
					<div class="chatting"><div class="sc">{$content}</div></div>
				</div>
EOF;
		}//endif
	return $output;
	}// endif $atts
}
アバター
tomoトモ
2018/02/23

誠にありがとうございます!シンプルな解決方法に頭があがりません。
こねくりまわしておりました。

それぞれのショートコードを吐き出す毎に、alt を変更したく
$alt = (isset($atts['alt'])) ? esc_attr($atts['alt']) : '';

を加えました。

いちいち面倒ですが、AddQuicktag に登録するのでそんなに変わらないかと思います。

ありがとうございます。

サルワカくん
サルワカくん
2018/02/23

柔軟に使える形になっていて良いですね!
たしかにAddQuickTagも合わせておけば、なお楽になりそうです。
ご報告ありがとうございました。