サポート » マルチサイト » 特定のサイトの投稿だけカスタムフィールドを追加したい

  • 解決済 yuki

    (@yuki84yuki)


    共通で使用するテーマのfunction.phpに
    カスタムフィールドを追加・出力・保存するコードを書きましたが、
    複数存在するサイト全ての投稿画面で出力されている状況です。

    これを特定のサイトのみで扱うには
    都度ブログIDをチェックして
    処理の実行有無を切り分けるしかないでしょうか?

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    テーマでしたらカスタマイズでオプションを設定するのもいいかもしれません。
    カスタマイズに設定項目を追加する方法は下記ページなどが参考になると思います。
    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 さん

    ありがとうございます。
    なるほど、子テーマの存在を忘れていました。
    プラグイン化も検討してみます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「特定のサイトの投稿だけカスタムフィールドを追加したい」には新たに返信することはできません。