サポート » 使い方全般 » 親のfunctions.phpを子テーマのfunctions.phpで制御できますか?

  • 解決済 kan2000

    (@kan2000)


    お世話になります。初心者質問ですみません。
    子テーマのfunction.phpで親のfunction.phpにない機能を追加する方法や、同じ関数を上書きする方法はわかりましたが、親のfunction.phpにある関数を制限かけて使えなくすることはできるのでしょうか?

    例えば、ヘッダー画像のデフォルトの設定の部分を子テーマのfunction.php側で使えなくする方法を教えてください。

    register_default_headers( array(
    		'wheel' => array(
    			'url' => '%s/images/headers/wheel.jpg',
    			'thumbnail_url' => '%s/images/headers/wheel-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Wheel', 'twentyeleven' )
    		),
    		'shore' => array(
    			'url' => '%s/images/headers/shore.jpg',
    			'thumbnail_url' => '%s/images/headers/shore-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Shore', 'twentyeleven' )
    		),
    		'trolley' => array(
    			'url' => '%s/images/headers/trolley.jpg',
    			'thumbnail_url' => '%s/images/headers/trolley-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Trolley', 'twentyeleven' )
    		),
    		'pine-cone' => array(
    			'url' => '%s/images/headers/pine-cone.jpg',
    			'thumbnail_url' => '%s/images/headers/pine-cone-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Pine Cone', 'twentyeleven' )
    		),
    		'chessboard' => array(
    			'url' => '%s/images/headers/chessboard.jpg',
    			'thumbnail_url' => '%s/images/headers/chessboard-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Chessboard', 'twentyeleven' )
    		),
    		'lanterns' => array(
    			'url' => '%s/images/headers/lanterns.jpg',
    			'thumbnail_url' => '%s/images/headers/lanterns-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Lanterns', 'twentyeleven' )
    		),
    		'willow' => array(
    			'url' => '%s/images/headers/willow.jpg',
    			'thumbnail_url' => '%s/images/headers/willow-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Willow', 'twentyeleven' )
    		),
    		'hanoi' => array(
    			'url' => '%s/images/headers/hanoi.jpg',
    			'thumbnail_url' => '%s/images/headers/hanoi-thumbnail.jpg',
    			/* translators: header image description */
    			'description' => __( 'Hanoi Plant', 'twentyeleven' )
    		)
    	) );

    親のfunction.phpからこれらを削除すればいいのですが、バージョンアップごとに削除しないで子のfunction.phpで制御できればと思います。
    こういう時にremove_filterなどは使えないのですか?

    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • Plan A:
    子テーマにTwentyElevenの twentyeleven_setup() 関数全体をコピペって
    register_default_headers(〜)の記述だけ削除する。

    Plan B:
    functions.php に以下をコピペ。

    add_action( 'after_setup_theme', 'my_theme_setup', 11 );
    function my_theme_setup() {
      global $_wp_default_headers;
      unregister_default_headers( array_keys( $_wp_default_headers ) );
    }

    トピック投稿者 kan2000

    (@kan2000)

    kz様
    迅速な回答ありがとうございました。
    最初にBプランをしましたら、ヘッダーのデフォルト画像設定部分は
    見事に消えました。

    で、このデフォルト画像をオリジナルに変更してランダム表示したかったので、
    完全に消えるとマズかったので、プランAを試しました。
    オリジナルヘッダー画像を表示させて、デフォルト画像を消すために、まず
    プランAの通りに該当行を削除したtwentyeleven_setup() 関数を子テーマの
    functions.phpに貼付け、その後にオリジナルヘッダー画像を読み込む設定を
    下記の子テーマだけに読み込ませる記述に入れましたところ、オリジナルの
    画像だけ表示されるようになりました。

    add_action( 'after_setup_theme', 'my_child_theme_setup' );
    function my_child_theme_setup() {
    
    register_default_headers(
    オリジナルヘッダー画像の設定
    );
    
    }

    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「親のfunctions.phpを子テーマのfunctions.phpで制御できますか?」には新たに返信することはできません。