サポート » 使い方全般 » functions.phpを使っての前にコードを挿入したい

  • 解決済 yokudekiru

    (@yokudekiru)


    調べてみましたが方法が見つからなかったので、質問させていただきます。

    私は<!DOCTYPE html>の前に<?php ob_start('ob_gzhandler'); ?>というgzip圧縮をするコードを入れています。
    ところが私の使っているテーマでは更新が多く、せっかく入れたコードもいちいち入れなおさないといけません。また、子テーマのfunctions.phpからadd actionをつかえばできるのではないかと考えましたが初心者の私ができるはずがありません。

    functions.phpを使う方法以外でも構いません。なにか良い方法を持っている方、どうか教えて下さい。

    ※.htaccessやphp.ini、index.phpにてgzip圧縮する方法もありますが訳あってその方法は使っていません。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 子テーマに header.php をコピーすれば支障ないでしょう。

    モデレーター jim912

    (@jim912)

    通常では、templaete_redirect アクションにフックして、ob_start させるのがよくある手法でしょう。
    もしくは、get_header 関数がテンプレートの冒頭に必ずあるのであれば、get_header アクションでも実行可能です。

    テーマの更新に対応するには、
    公開済みのプラグインを使うのが一番だと思います。
    gzip圧縮だけをするプラグインもありました。
    https://ja.wordpress.org/plugins/wpgzip-compression/

    自作子テーマで対応する場合、
    以下のプラグインで更新リストから外すことで、
    同じ名前のテーマが公式サイトで公開されていても上書きされなくなります。
    https://ja.wordpress.org/plugins/without-update-themes/

    子テーマを作り、「wpgzip-compression」というプラグインのコードをfunctions.phpに貼り付けるとできると思います。

    スレッド開始 yokudekiru

    (@yokudekiru)

    皆さん有り難うございます。

    >子テーマに header.php をコピーすれば支障ない
    この方法もすでにやっていたのですが、エラーが出ました。

    >通常では、templaete_redirect アクションにフックして、ob_start させるのがよくある手法でしょう。
    初心者の私には、ちょっと難しいので保留とさせていただきます。すいません。

    >gzip圧縮だけをするプラグイン
    このプラグインのコードを見たところ、とても簡単でしたのでこのプラグインのコードを子テーマのfunctions.phpに貼り付けることにしました。

    function wpgzip_comppression(){
        if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
        {
          ob_start("ob_gzhandler");
        }else{
            ob_start();
        }
    }
    
    add_action("init","wpgzip_comppression");

    回答してくださった、3名の方本当にありがとうございました。感謝しています。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「functions.phpを使っての前にコードを挿入したい」には新たに返信することはできません。