如何从仪表板和主题选项页面中删除主题定制按钮?

时间:2013-01-21 作者:Dwayne Charrington

在我目前正在构建的Wordpress主题中,我没有利用Wordpress主题定制API。尽管我也很想,但我在自己的主题选项框架中投入了太多的时间来改变事情。

这就引出了我的问题。如何从仪表板中删除蓝色的“自定义站点”按钮以及查看外观>主题时显示的链接?我做了一些Google搜索,但我的Google-Fu失败了,找不到一个不使用CSS或Javascript的解决方案。

理想情况下,最好用钩子将其取下。但如果没有干净的方法来做到这一点,JS和或CSS解决方案就可以了。

5 个回复
最合适的回答,由SO网友:jaredatch 整理而成

使用最新版本的WordPress(4.3),您现在可以在本机上删除自定义程序的主题切换设置,而无需求助于CSS黑客。

/**
 * Remove customizer options.
 *
 * @since 1.0.0
 * @param object $wp_customize
 */
function ja_remove_customizer_options( $wp_customize ) {
   //$wp_customize->remove_section( \'static_front_page\' );
   //$wp_customize->remove_section( \'title_tagline\'     );
   //$wp_customize->remove_section( \'nav\'               );
   $wp_customize->remove_section( \'themes\'              );
}
add_action( \'customize_register\', \'ja_remove_customizer_options\', 30 );

SO网友:Robert Neu

在最新版本的WordPress中,主题部分是一个面板,因此必须按如下方式删除它:

add_action( \'customize_register\', \'prefix_remove_customizer_options\', 30 );
/**
 * Remove customizer options.
 *
 * @since 1.0.0
 * @param object $wp_customize The current WordPress customizer object.
 */
function prefix_remove_customizer_options( $wp_customize ) {
    $wp_customize->remove_panel( \'themes\' );
}

SO网友:frast42

这将完全删除菜单选项:

add_action(\'admin_menu\', function () {
    global $submenu;

    foreach ($submenu as $name => $items) {
        if ($name === \'themes.php\') {
            foreach ($items as $i => $data) {
                if (in_array(\'customize\', $data, true)) {
                    unset($submenu[$name][$i]);

                    return;
                }
            }
        }
    }
});
如果您在另一个子页面上,其他答案不会删除它+您悬停主题菜单(您将在子菜单中看到它)

SO网友:brasofilo

no hooks 到仪表板的那个部分。

必须使用CSS(或者jQuery,如果您想将其转换为其他内容)。

add_action( \'admin_head-index.php\', \'hide_customize_button_wpse_82424\' );

function hide_customize_button_wpse_82424(){
    ?>
    <style type="text/css">div.welcome-panel-column:first-child {display:none;} </style>
    <?php
}

[update]

正如@helenhousandi在评论中指出的:

这个wp_welcome_panel() 函数添加到welcome_panel 钩子,但不是,在这个函数中(有意地)没有钩子。

因此,另一种方法是移除动作挂钩并重新创建wp_welcome_panel() 功能,如:

add_action( \'load-index.php\', \'remove_welcome_panel\' );
function remove_welcome_panel()
{
    remove_action( \'welcome_panel\', \'wp_welcome_panel\' );
    add_action( \'welcome_panel\', \'my_welcome_panel\' );
}
以及my_welcome_panel 是的副本wp_welcome_panel() 随心所欲地改编。

Please, also note her observation: <我的重点

不过,我建议不要让一个公开发布的主题将其删除,因为用户可能会期望它在那里。我们在用户测试中发现,许多新用户即使在熟悉之后也会返回欢迎面板。

SO网友:mohammed kaleemulla

您需要在函数处传递以下代码。php

function theme_option_remove( $wp_customize ) {
$wp_customize->remove_section("themes");
}
add_action( \'customize_register\', \'theme_option_remove\' ,20 );

结束

相关推荐

向函数添加APPLY_FILTERS有什么不利影响吗?

我将回顾我以前的WordPress主题,使函数可过滤,并添加函数\\u exists检查。我有没有想过这会导致现有代码出现问题?// Dummy function if ( ! function_exists( \'custom_func\' )) { function custom_func() { $output = \"Something Awesome\"; return apply_filters(\'custom_func