WordPressで出力されるソース内のhtmlコメントを一括で削除する ( 特定のコメントは表示させることも可能 )

概要説明

html内のソースのコメントを削除するためのカスタマイズ。制作時にわかりやすくするためにコメントを残しますが閲覧する人にとっては不要な情報であり、ユーザーに見られたくない情報などが含まれる場合もあります。意味のあるコメントもあるため不要なコメントだけを一括で削除するテクニックです。

functions.php
/*----------------------------------------------------
 表示前にフックして出力テキストを置換する
----------------------------------------------------*/
if ( !function_exists( 'final_processing_replace' ) ){
    if ( !is_admin() ) {
        function final_processing_replace($buffer) {
            // IE判定用のコメントは除外してコメントを削除
            $buffer = preg_replace('/<!--[^\[]*?-->/','',$buffer);

            // 他にも処理したい内容がある場合はここに追加

            return $buffer;
        }

        function buf_start() { ob_start('final_processing_replace'); }
        function buf_end() {
            if( ob_get_length() ){
                ob_end_flush();
            }
        }

        add_action('after_setup_theme', 'buf_start');
        add_action('shutdown',          'buf_end');
    }
}

IE判定用のコメントを考慮しない場合

// 全コメントを削除したい場合
$buffer = preg_replace('/<!--[\s\S]*?-->/','',$buffer);

出力前にフックして処理を実行という処理を複数定義して実行させるとエラーになる場合があるので他にも削除、置換したい処理がある場合は1つの処理内で複数記述を行うことをおすすめします。

htmlソースを確認して残したいコメント、表示したいコメントを確認

<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width">
<meta name="format-detection" content="telephone=no">

<!–[if IE]><meta http-equiv=”X-UA-Compatible” content=”IE=edge”><![endif]–>

がソースに内で確認できて他のコメントが非表示になっていたら成功です。

IE用のコメントを除外しておくことで表示させたいコメントの制御が行えます

<!--[SIDE_START]-->~<!--[SIDE_END]-->

[]を使用するとコメントの削除対象にならないため表示させたいコメントを残すことが出来ます。意図的にスクレイピングしやすいようにといった時には上記のような対応を行う場合があります。

他にも処理したい内容の補足 ( タブ、改行の削除 )

functions.php
// 他にも処理したい内容がある場合はここに追加
$buffer = str_replace("\t",'',$buffer);       // タブ削除
$buffer = str_replace("\n\n","\n",$buffer);   // 2回改行を1回に変更

上記のように他にも整形したい内容があれば記述を追加します

WordPress Developer Resources

関連機能

  1. WordPressログインページ、管理画面にIP制限を設定 ( .htaccess )

  2. WordPressのRSSフィード機能を無効にする ( feed機能停止 )

  3. WordPressのXML-RPC機能を無効にして不正アクセスを防止

サイドバー

よく使うカスタマイズ

最近の記事

アニメの名言集

別れが必然ならば
出会ったことを後悔してないか?

STEINS;GATE
by 岡部 倫太郎

Profile

PAGE TOP
Amazon プライム対象