- H2タグの前に番号を付けるために、WordPressの functions.php にカスタムスクリプトを追加しました。
- H2タグを検出し文字列を置き換える処理を、フィルターとして ‘the_content’に追加します。
- H3タグでも同様に階層的な番号付けができます。
1. H2タグの文字の前に番号を追加したい
WordPressサイトのfunctions.phpにコードを追加して、H2タグの文字の前に番号を追加したい、と考えました。
function add_numbers_to_h2($content) {
$h2_count = 0;
$pattern = '/<h2.*?>(.*?)<\/h2>/i';
$content = preg_replace_callback($pattern, function($matches) use (&$h2_count) {
$h2_count++;
return sprintf('<h2>%d. %s</h2>', $h2_count, $matches[1]);
}, $content);
return $content;
}
add_filter('the_content', 'add_numbers_to_h2');
add_numbers_to_h2
関数は、投稿のコンテンツを受け取り、修正したコンテンツを返します。
この関数をWordPressのthe_content
フィルターにフックします。
目次を生成した後に動作します。
2. H3タグも付けたいなら?
H3タグを “1-1.” の形式で追加する場合、H2タグとH3タグの両方に対応したより複雑なスクリプトが必要になります。
function add_numbers_to_h2_h3($content) {
$h2_count = 0;
$h3_count = 0;
$pattern = '/<(h2|h3).*?>(.*?)<\/\1>/i';
$content = preg_replace_callback($pattern, function($matches) use (&$h2_count, &$h3_count) {
if (strtolower($matches[1]) === 'h2') {
$h2_count++;
$h3_count = 0;
return sprintf('<h2>%d. %s</h2>', $h2_count, $matches[2]);
} else {
$h3_count++;
return sprintf('<h3>%d-%d. %s</h3>', $h2_count, $h3_count, $matches[2]);
}
}, $content);
return $content;
}
add_filter('the_content', 'add_numbers_to_h2_h3');
preg_replace_callback
関数内で、見つかったタグがH2かH3かを判断し、適切な形式で番号を追加します。
- H2タグが見つかるたびに
$h2_count
をインクリメントし、$h3_count
をリセットします。 - H3タグが見つかるたびに
$h3_count
をインクリメントします。
こちらもどうぞ。
[WordPress]ブロックエディタに「書式のクリア」のショートカットキーを追加した(functions.php)
WordPressのブロックエディタに「書式のクリア」のショートカットキーを追加しました。 functions.phpとcustom-editor.jsを使用して、Command+Jで「書式のクリア」をできるようにしました。 「書式のクリア」のショートカットキーを追加したい WordPressのブロックエディターにControl+Spaceでテキストの書式をクリアするショートカットキーとして「Command+J」を追加しようと思います。 ブロックエディタの「書式のクリア」は、...
[WordPress]画像キャプションをalt属性を自動設定するカスタムスクリプト(functions.php)
WordPressの画像ブロックにおいて、キャプションをalt属性に自動設定するカスタムスクリプトを作成しました。 このスクリプトは、figcaptionタグ内のテキストを優先的にalt属性に設定します。 functions.phpに追加することで、画像のアクセシビリティを向上させることができます。 画像のキャプションをalt文字列に活用したい WordPressの画像ブロックには、キャプションを付けることができます。画像にAlt文字列が設定されていないときに、もしキャプショ...
[Cocoon] 各見出し後に「目次に戻る」リンクを追加した(functions.php)
ブログの中でもっともよくクリックされるのは、「目次」だそうです。 各セクションに Cocoonの目次に対応した「戻る」ボタンを設置しました。 参考サイトを元に、自分のブログに合うように一部修正しました。 確かに、目次からサッと読みたいところを確認できるサイトは、とても便利ですよね。 目次に戻るリンクを挿入するコード functions.phpに追加します。 /** 自動で目次に戻るリンクを挿入 */ add_filter('the_content', function($co...
QRコードを読み込むと、関連記事を確認できます。