【スポンサーリンク】

[WordPress] H2タグの文字の前に番号を追加するカスタムスクリプト(functions.php)

[WordPress] H2タグの文字の前に番号を追加するカスタムスクリプト(functions.php)
  • 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フィルターにフックします。

コードの説明:
  1. 正規表現を使用してH2タグを検出します。
  2. preg_replace_callback関数を使って、見つかったH2タグを番号付きのものに置き換えます。
H2タグの文字の前に番号を追加したい

目次を生成した後に動作します。

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)
WordPressのブロックエディタに「書式のクリア」のショートカットキーを追加しました。 functions.phpとcustom-editor.jsを使用して、Command+Jで「書式のクリア」をできるようにしました。 「書式のクリア」のショートカットキーを追加したい WordPressのブロックエディターにControl+Spaceでテキストの書式をクリアするショートカットキーとして「Command+J」を追加しようと思います。 ブロックエディタの「書式のクリア」は、...

[WordPress]画像キャプションをalt属性を自動設定するカスタムスクリプト(functions.php)
[WordPress]画像キャプションをalt属性を自動設定するカスタムスクリプト(functions.php)
WordPressの画像ブロックにおいて、キャプションをalt属性に自動設定するカスタムスクリプトを作成しました。 このスクリプトは、figcaptionタグ内のテキストを優先的にalt属性に設定します。 functions.phpに追加することで、画像のアクセシビリティを向上させることができます。 画像のキャプションをalt文字列に活用したい WordPressの画像ブロックには、キャプションを付けることができます。画像にAlt文字列が設定されていないときに、もしキャプショ...

[Cocoon] 各見出し後に「目次に戻る」リンクを追加した(functions.php)
[Cocoon] 各見出し後に「目次に戻る」リンクを追加した(functions.php)
ブログの中でもっともよくクリックされるのは、「目次」だそうです。 各セクションに Cocoonの目次に対応した「戻る」ボタンを設置しました。 参考サイトを元に、自分のブログに合うように一部修正しました。 確かに、目次からサッと読みたいところを確認できるサイトは、とても便利ですよね。 目次に戻るリンクを挿入するコード functions.phpに追加します。 /** 自動で目次に戻るリンクを挿入 */ add_filter('the_content', function($co...
QRコードを読み込むと、関連記事を確認できます。

[WordPress] H2タグの文字の前に番号を追加するカスタムスクリプト(functions.php)
【スポンサーリンク】
タイトルとURLをコピーしました