私が現在構築している私のWordpressテーマでは、私はWordpressテーマカスタマイズAPIを利用しません。私も望む限り、私は物事を変えるために私自身の個人的なテーマオプションフレームワークにあまりにも多くの時間を費やしました。
これは私を私の質問に導きます。ダッシュボードから青い[サイトのカスタマイズ]ボタンを削除し、[表示]> [テーマ]の表示中に表示されるリンクを削除する方法を教えてください。私はグーグルをしましたが、私のグーグル - フーは失敗し、CSSやJavascriptを使わない解決策を見つけることができませんでした。
理想的にはそれを削除するためのフックが最善です。しかし、それを行うための明確な方法がない場合は、JSまたはCSSのソリューションで問題ありません。
最新バージョンの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 );
最新バージョンの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' );
}
ダッシュボードのその部分には フックはありません があります。
それは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_panel
はwp_welcome_panel()
のレプリカで、望み通りに改造されています。
彼女の観察にも注意してください: 私の強調
公に配布されたテーマでそれを削除することに反対することをお勧めしますしかし、ユーザーはそれがあると期待するようになるかもしれないので。私たちは、ユーザーテストの結果、知り合いになった後でも、多くの新しいユーザーがウェルカムパネルに戻ったことを確認しました。
あなたはfunction.phpで次のコードを渡す必要があります
function theme_option_remove( $wp_customize ) {
$wp_customize->remove_section("themes");
}
add_action( 'customize_register', 'theme_option_remove' ,20 );