HOME フォーラム BizVektor functions.phpの子テーマでの変更について

このトピックには3件の返信が含まれ、2人の参加者がいます。8 年、 3 ヶ月前 kinkin さんが最後の更新を行いました。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #278

    kinkin
    参加者

    いつも大変便利に使わせてもらっています。

    functions.phpを子テーマで変更したい時に、
    関数の前後に actionフック や filterフック がある場合は、

    if ( ! function_exists( ‘child_theme_setup’ ) ):
    function child_theme_setup() {
    // ウィジェットの定義を子テーマのものに入れ替える
    remove_action( ‘widgets_init’, ‘biz_vektor_widgets_init’ );
    add_action( ‘widgets_init’, ‘biz_vektor_widgets_init_child’ );
    }
    endif;
    // 上記の関数を、親テーマの読み込みより後に読み込んでもらう
    add_action( ‘after_setup_theme’, ‘child_theme_setup’ );

    このように、変更することができましたが、
    そうでない関数の場合、どうしたらいいのか途方に暮れています。

    具体的には、親テーマのfunctions.phpの

    /*——————————————-*/
    /* head_description 生成
    /*——————————————-*/
    function getHeadDescription() {
    ・・・(省略)・・・
    }

    の部分ですが、この部分はフックが掛けてなく、子テーマのfunctions.phpでどのように変更していいかわかりません。

    そのまま、変更した関数を記述したらエラーになりました。(たぶん重複エラー)

    googleが「重複するメタデータ(descriptions)」を出してくるため、この部分を変更していますが、
    今までは、直接変更していましたが、毎回変更するのが面倒だったので、今回子テーマに挑戦中に行き詰ってしまいました。

    どなたかご教授いただけたら幸いです。

    #283
    じょに次郎
    じょに次郎
    モデレーター

    う~ん、現状ここはフックが用意されていない為、ちょっと厄介ですね。


    header.phpを子テーマにコピーして <?php getHeadDescription();?> を <?php getHeadDescription2();?> などに変更し、
    子テーマのfunctions.phpにgetHeadDescription2()を書いて・・・
    ただ、header.phpの変更は極力避けた方が無難なので悩ましい所

    2 jQuery でdescriptionタグをごにょごにょする

    の2択だと思いますが

    3 BizVektor側でfilterフックが用意されるのを待つというのも一つの手段かと思います。

    #284
    じょに次郎
    じょに次郎
    モデレーター

    次のバージョンでフックが実装されるようです。
    http://bizvektor.com/download/

    #288

    kinkin
    参加者

    じょに次郎様

    ご回答ありがとうございます。

    1.の方法は、思いつきもしませんでした。他の場面でも使えそうなので一度試してみます。

    次のバージョンでフックが実装されてから3.の方法でトライしてみます。

4件の投稿を表示中 - 1 - 4件目 (全4件中)

このトピックに返信するにはログインが必要です。