web-dev-qa-db-ja.com

ダッシュボードとテーマのオプションページからテーマのカスタマイズボタンを削除するにはどうすればいいですか?

私が現在構築している私のWordpressテーマでは、私はWordpressテーマカスタマイズAPIを利用しません。私も望む限り、私は物事を変えるために私自身の個人的なテーマオプションフレームワークにあまりにも多くの時間を費やしました。

これは私を私の質問に導きます。ダッシュボードから青い[サイトのカスタマイズ]ボタンを削除し、[表示]> [テーマ]の表示中に表示されるリンクを削除する方法を教えてください。私はグーグルをしましたが、私のグーグル - フーは失敗し、CSSやJavascriptを使わない解決策を見つけることができませんでした。

理想的にはそれを削除するためのフックが最善です。しかし、それを行うための明確な方法がない場合は、JSまたはCSSのソリューションで問題ありません。

6

最新バージョンの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フックに追加されていますが、いいえ、その関数内に(意図的に)フックはありません。

そのため、もう1つの方法は、アクションフックを削除して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_panelwp_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