既存のカスタマイザ設定を削除するにはどうすればよいですか?


回答:


16

パーティーに遅れましたが、これはトリックを行います:

$wp_customize->remove_control('blogdescription');

上記のセクション全体ではなく、そのコントロールのみを削除する必要があります。


1
設定も削除する必要があります:$ wp_customize-> remove_setting( 'blogdescription')
mimarcel

これにより、現在そこにある保存されている値も削除されますか?既存のデータがある既存の設定/コントロールを削除したいのですが、データはまだコールバックされています。wordpress.stackexchange.com/questions/329343/...
リー

10

このコードを使用して、WordPressテーマの既存のカスタマイザー設定を削除します。

ここに画像の説明を入力してください

add_action( "customize_register", "ruth_sherman_theme_customize_register" );
function ruth_sherman_theme_customize_register( $wp_customize ) {

 //=============================================================
 // Remove header image and widgets option from theme customizer
 //=============================================================
 $wp_customize->remove_control("header_image");
 $wp_customize->remove_panel("widgets");

 //=============================================================
 // Remove Colors, Background image, and Static front page 
 // option from theme customizer     
 //=============================================================
 $wp_customize->remove_section("colors");
 $wp_customize->remove_section("background_image");
 $wp_customize->remove_section("static_front_page");

}

5

WP_Customize_Managerクラスにはという関数があることがわかりましたremove_section()。あなたのフックされた関数では、customize_register次のことができます:

    $wp_customize->remove_section('nav');
    $wp_customize->remove_section('static_front_page');

セクションのアコーディオンのタイトルバーを調べると、セクションのID(「nav」など)を見つけることができます。含んでいる<li>タグのIDを見てください。それはの後の文字列の部分です"customize-section-"。IE:

<li id="customize-section-static_front_page" class="control-section customize-section">

-IDは "static_front_page"


それは私のソリューションよりも良く見えるので、私はあなたにダニを与えます-私はそれをテストしていませんが、あなたが持っていると思います...しかし、私はtitle_taglineを取得しません-確かにstatic_front_pageと言うべきです、それはタイプミスBACですか?
-Byronyasgur

@byronyasgurうん、それはコピーパスタエラーでしたが、現在修正されています。ありがとう!
ジェシカ

実際、これは正しい答えではありません。これにより、サイトのタイトルとキャッチフレーズの両方を含むセクション全体が削除されます。質問はキャッチフレーズのみを求めています。@byronyasgurて以下の回答を見てください
BFTrick

2

OTTOに準拠

セクションに追加できる最後の1つは、「theme_supports」オプションです。これにより、テーマが何かをサポートしていない限り、メニューは表示されません。このコードをテーマ自体に入れている場合は、テーマがサポートするものをすでに知っているため、あまり意味がありません。コアはこれを使用して、テーマでサポートされていない場合、ヘッダーと背景のオプションを表示しません。

だから私はそれを一緒に入れて

    $wp_customize->get_setting('blogdescription')->transport='postMessage';

...そして、次のコードが機能することを発見しました。私falseはtheme_supportsに参加します...本当に何を入力すべきかわからない...もう少し専門家がこれを改善できるかもしれません。

    $wp_customize->add_control('blogdescription')->theme_supports=false;

1

セクション/パネルまたはコントロールコアの場合、削除する代わりにそれらを無効にすることをお勧めします。

add_action( 'customize_register', 'wp_stackexchange_58932' );
function wp_stackexchange_58932($wp_customize){
    $wp_customize->get_section( 'static_front_page' )->active_callback = '__return_false';
    $wp_customize->get_section( 'custom_css' )->active_callback = '__return_false';
}

1
すばらしいヒントです。ページがなくても、常にstatic_front_page設定を表示するために使用しました(デフォルトでは、サイトにページが存在する場合にのみ表示されます)
Larzan

0

プラグインでこれを使用している場合、999のような優先度引数を使用する必要があり、プラグインで機能します。

add_action( "customize_register","wpcb_theme_customize_register",999,1);    

function wpcb_theme_customize_register($wp_customize){
   $wp_customize->get_setting('blogdescription')->transport='postMessage';
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.