如何删除预先存在的定制程序设置?


Answers:


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 2012年

@byronyasgur是,这是复制面食错误,现已修复。谢谢!
2012年

实际上,这不是正确的答案。这将删除包含网站标题和标语的整个部分。问题是只要求标语。看看@byronyasgur的以下答案
BFTrick 2012年

2

根据OTTO

您可以添加到部分的最后一件事是“ 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';
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.