it-swarm.com.ru

Как удалить кнопку настройки темы со страницы параметров панели инструментов и тем?

В моей теме Wordpress, которую я сейчас создаю, я не использую API настройки Wordpress Theme. Как бы мне этого ни хотелось, я потратил слишком много времени на разработку своей собственной системы опций тем для изменения вещей.

Это приводит меня к моему вопросу. Как удалить синюю кнопку "Настройка сайта" с панели инструментов, а также ссылку, отображаемую при просмотре "Внешний вид"> "Темы"? Я немного погуглил, но мой Google-Fu не удался и не смог найти решение, не использующее CSS или Javascript.

В идеале крюк, чтобы удалить это было бы лучше. Но если нет чистого способа сделать это, JS и/или CSS-решение подойдут.

6
Dwayne Charrington

С последней версией 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 );
5
jaredatch

В последней версии 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' );
}
2
Robert Neu

Есть нет крюков к этой части панели инструментов.

Это должно быть сделано с помощью 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
}

[обновить]

Как указано @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(), адаптированной по желанию.

Пожалуйста, также обратите внимание на ее наблюдение:  мой акцент

Я бы посоветовал против того, чтобы публично распространяемая тема удаляла ее, хотя, потому что пользователь может ожидать, что она там есть. В ходе тестирования пользователей мы обнаружили, что многие новые пользователи возвращаются в эту панель приветствия даже после знакомства.

1
brasofilo

Вам нужно передать следующий код в function.php

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