wordpressのエディター見出しタグを変えたい
wordpressとphpを勉強中のためこの方法が可能なのか知りたいです。
Guternbergで見出しを追加したときにh2・h3と追加されるものを
html
1<h2 class="ttl01"><span>タイトル</span><h2> 2<div class="wrap"><h3 class="ttl02">タイトル<h3></div> 3
<span>をいれたり<div>で囲いクラスをつけたいです。
試したこと
スタイルでクラスを追加してデザインを変えることは
出来たのですがスタイルを選ぶのではなく
見出しのレベルを選んだ時にクラスやspanがつくようにすることは難しいでしょうか。
php
1register_block_style( 2 'core/heading', 3 array( 4 'name' => 'designh2', 5 'label' => 'h2', 6 'inline_style' => '', 7 ) 8);
どなたかご教授いただければ幸いです。
追記
正規表現で置換してみました!
クラスが存在するかしないかで置換方法をかえているのですが
if分使わずに正規表現でできそうなきもするのですが・・
初心者のためもっとスマートな書き方があれば教えていただきたい。
php
1function wporg_block_wrapper( $block_content, $block ) { 2 if ( $block['blockName'] === 'core/heading' ) { 3 // クラスが元々あるかないかで判定 4 if (preg_match("/class/", $block["innerHTML"])) { 5 $content = preg_replace( 6 '/<h2(.*?)class="(.*?)"(.*?)>(.*?)</h2>/', 7 '<h2$1class="$2 designh2"$3><span>$4</span></h2>', 8 $block_content); 9 } else { 10 $content = preg_replace( 11 '/<h2(.*?)>(.*?)</h2>/', 12 '<h2 class="designh2"$1><span>$2</span></h2>', 13 $block_content); 14 } 15 return $content; 16 } 17 return $block_content; 18} 19 20add_filter( 'render_block', 'wporg_block_wrapper', 10, 2 );
html
1<h2 class="testadmin designh2" id="anc01"><span>class and id h2</span></h2> 2<h2 class="designh2"><span>simple h2</span></h2>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/26 06:22
2020/03/26 06:32