私はテーマを持っていて、functions.php
ファイルでその特定の部分の動作をオーバーライドする必要があります。ここでのベストプラクティスは、カスタムのfunctions.php
を配置することによってこれを子テーマで行うことです。これは元のファイルの一部です。
function mytheme_setup() {
...
add_image_size( 'mytheme-l-thumbs' , 750 , 423 , true);
add_image_size( 'mytheme-m-thumbs' , 555 , 313 , true);
add_image_size( 'mytheme-s-thumbs' , 450 , 254 , true);
add_image_size( 'mytheme-square-thumbs' , 750 , 750 , true);
add_image_size( 'mytheme-nocrop-thumbs' , 750 , 1500 , false);
}
add_action( 'after_setup_theme', 'mytheme_setup' );
そして私は自分の子供のテーマでcrop
をfalseに設定することでそれぞれのadd_image_size
をオーバーライドしたいと思います。私は子のテーマに関数をコピー&ペーストしてみましたが、このエラーになりました。
88行目の/themes/mytheme/functions.phpにmytheme_setup()(以前は/themes/mytheme-child/functions.php:11で宣言されていました)を再宣言することはできません
どうすればそれができますか?
関数がフックされると、子テーマでそれを変更するのは簡単です。あなたがする必要があるのは
元のコールバック関数を削除
この関数をあなたの子供のテーマにコピーして名前を変更してください。
必要に応じてカスタマイズを行います
コールバック機能を再フックする
あなたは以下を試すことができます:
// Remove the callback function from the hook
remove_action( 'after_setup_theme', 'mytheme_setup' );
// Copy the function, rename and do what you need
function my_new_callback()
{
// Modify what you need
}
// Rehook your custom callback
add_action( 'after_setup_theme', 'my_new_callback' );