その場合、ショートコードを複製してオリジナルのものを作ることになります。
ショートコードはlibrary/functions/style-shortcode.php
で登録されています。
アコーディオンの場合、
add_shortcode('open', 'sng_insert_accordion'); //アコーディオン
と
/*********************
アコーディオン
*********************/
function sng_insert_accordion($atts, $content = null)
{
$title = isset($atts['title']) ? $atts['title'] : null;
$content = do_shortcode(shortcode_unautop($content));
$randid = mt_rand(1, 99999);
if ($title) {
return '<div class="accordion main_c"><input type="checkbox" id="label' . $randid . '" class="accordion_input" /><label for="label' . $randid . '">' . $title . '</label><div class="accordion_content">' . $content . '</div></div>';
} else {
return '<span class="red">アコーディオンにtitleを入力してください</span>';
}
}
という部分がショートコードの登録部分になります。なので、子テーマのfunctions.phpでこの2つを複製します。その際、ショートコード名('open'
という部分)と関数名(sng_insert_accordion
という部分。上のコードのうち2箇所あります)
)がテーマ本体とかぶらないように変えます。
例えば、ショートコード名をmyopen
、関数名をmy_sng_insert_accordion
として複製するサンプルです。
//オリジナルのアコーディオンを登録
add_shortcode('open', 'sng_insert_accordion');
function sng_insert_accordion($atts, $content = null)
{
$title = isset($atts['title']) ? $atts['title'] : null;
$content = do_shortcode(shortcode_unautop($content));
$randid = mt_rand(1, 99999);
if ($title) {
return '<div class="accordion main_c"><input type="checkbox" id="label' . $randid . '" class="accordion_input" /><label for="label' . $randid . '">' . $title . '</label><div class="accordion_content">' . $content . '</div></div>';
} else {
return '<span class="red">アコーディオンにtitleを入力してください</span>';
}
}
この中のclass名などは自由に変えることができます(もとのショートコードとは別のものなので)。同じ方法でアコーディオンに限らず他のショートコードも自由に複製できます。
大変丁寧な回答ありがとう御座いました。是非参考にさせて頂きます。
WordPressテーマSANGOの質問
もう一つショートコードを作るときの記述を教えてほしい
いつもお世話になっています
まずSANGOのデフォルトで使用しているCSSに変更をくわえて自分なりのデザインにしてみたのですが、ショートコードはどのように変更すればよろしいのでしょうか
[open title='ここにタイトル']隠したいコンテンツをここに記載[/open]
ちなみに上のショートコードも記事によって使いわけています
なので自分でデザインしたアコーディオンはまた別にショートコードを入れる必要があるとは思いますが、分からなかったので…
よろしくおねがいします。