質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1228閲覧

wordpressのエディター見出しタグを変えたい

pocoto

総合スコア5

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/03/24 03:13

編集2020/03/27 06:54

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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

既存のブロックの出力されるHTMLの構造を変更するのは難しいです
ブロックがそういうことができるように作られたものでないとできません

見出しブロックの出力のソースコードを見ると非常にシンプルなブロックであることがわかります
クラスを多少弄れるようになってる以外は出力のカスタマイズの余地がありません

登録されたheadingブロックタイプにrender_callbackを追加して
出力時に構造を変更して出力するなんて力技もできなくはないでしょうが
そこまでやるならフロント側のjsで処理するか
自分でブロック作った方がいいでしょうね


追記

ちょっと試しにheadingブロックをいじってみようと思ったら
WordPressコアのブロックタイプはそもそもほとんどが
サーバーサイドのregister_block_typeによって登録をされておらず
WP_Block_typeインスタンスも作られてないようなので
どうもrender_callbackを後付けする方法がなさそうです

サーバーサイドで処理するならrender_blockフィルタでしょうかね

このフィルタが用意されてるってことはブロックごとに
出力時にHTMLを改変する使い方も想定してるってことでしょう

フロントのjsで処理するとかよりはrender_blockフィルタを使う方が
WordPressの想定する使い方に沿っているかもしれません

投稿2020/03/24 05:07

編集2020/03/24 16:08
KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pocoto

2020/03/26 06:22

ご回答ありがとういただきありがとうございます! 詳しくご説明いただき助かります。 初心者では難しそうなの上記を見てもう少し勉強いたします・・!
pocoto

2020/03/26 06:32

リンク貼っていただいたrender_blockフィルタの User Contributed Notesの<div>を囲む方法をためしてみたら 囲うことができました!ありがとうございます! あとはh2・h3個別につけるのとspanを試してみます
guest

0

ミス投稿で削除の仕方がわかりませんでした

投稿2020/03/27 06:50

編集2020/03/27 06:56
pocoto

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問