こんにちは
テーマでしたらカスタマイズでオプションを設定するのもいいかもしれません。
カスタマイズに設定項目を追加する方法は下記ページなどが参考になると思います。
https://theorthodoxworks.com/wordpress/theme-customizer-api-add-section/
こんにちは
マルチサイト環境ということでよろしいでしょうか?
私はマルチサイトの経験があまりないので、これでうまくいかなかったら申し訳ないですが・・・
共通で使っているテーマを親テーマとして、各サイトではそれぞれの子テーマを作成して使用してはどうでしょうか?
親テーマのその処理は関数にしておき、その処理を行いたい子テーマからのみ呼び出したらいいと思います。
もうすでに子テーマをお使いなのであれば、該当の関数をプラグイン化してもいいと思います。
カスタマイズに設定項目を追加するサンプルコードを書いてみました。
カスタマイズにチェックボックスを追加:
function my_customize_register( $wp_customize ) {
$wp_customize->add_section( 'my_theme_origin_scheme', [ 'title' => 'サイトオプション', 'priority' => 199 ] );
$wp_customize->add_setting( 'my_theme_options[origin_checkbox]', [ 'default' => false, 'type' => 'option', 'transport' => 'refresh' ] );
$wp_customize->add_control( 'my_theme_options_origin_checkbox', [ 'settings' => 'my_theme_options[origin_checkbox]', 'label' => 'オリジナルカスタムフィールドを使用する', 'section' => 'my_theme_origin_scheme', 'type' => 'checkbox'] );
}
add_action( 'customize_register', 'my_customize_register' );
追加したチェックボックスで条件分岐:
$options = get_option( 'my_theme_options' );
if ( $options['origin_checkbox'] ) {
// カスタムフィールドの処理
}
もうすでに子テーマをお使いなのであれば、該当の関数をプラグイン化してもいいと思います。
私もプラグイン化いいと思います。
トピック投稿者
yuki
(@yuki84yuki)
@ishitaka さん
具体的なコードまでありがとうございます。
カスタマイズ画面に悪背うして操作する手間がありますが、
初回だけなので良いかもしれません。
@munyagu さん
ありがとうございます。
なるほど、子テーマの存在を忘れていました。
プラグイン化も検討してみます。