web-dev-qa-db-ja.com

プラグインオプションページでチェックボックスがチェックされているときに特定の関数を呼び出す方法

私はphpとwpプラグインの開発に不慣れです、私はちょうど私のテストプラグインのための簡単なオプションページを作成しました、オプションページは1つのチェックボックスだけを持っています、

私のプラグインオプションページはこんな感じです

<?php

add_action( 'admin_menu', 'chec_add_admin_menu' );
add_action( 'admin_init', 'chec_settings_init' );


function chec_add_admin_menu(  ) { 

add_options_page( 'Checking', 'Checking', 'manage_options', 'checking', 'checking_options_page' );

}


function chec_settings_init(  ) { 

register_setting( 'my_option', 'chec_settings' );

add_settings_section(
    'chec_checking_section', 
    __( 'Your section description', 'wp' ), 
    'chec_settings_section_callback', 
    'checking'
);

add_settings_field( 
    'chec_checkbox_field_0', 
    __( 'Settings field description', 'wp' ), 
    'chec_checkbox_field_0_render', 
    'checking', 
    'chec_checking_section' 
);


}


function chec_checkbox_field_0_render(  ) { 

$options = get_option( 'chec_settings' );
?>
<input type='checkbox' name='chec_settings[chec_checkbox_field_0]' <?php checked( $options['chec_checkbox_field_0'], 1 ); ?> value='1'>
<?php

}

function chec_settings_section_callback(  ) { 

echo __( 'This section description', 'wp' );

}


function checking_options_page(  ) { 

?>
<form action='options.php' method='post'>

    <h2>Checking</h2>

    <?php
    settings_fields( 'my_option' );
    do_settings_sections( 'checking' );
    submit_button();
    ?>

</form>
<?php

}

?>

次のコードを使用してチェックボックスをオンにしたときに、管理バーのWPロゴを削除します。

add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );
function remove_wp_logo( $wp_admin_bar ) {
$wp_admin_bar->remove_node( 'wp-logo' );
}

これを行う方法?

1
GKK

関数をアクションフックに追加する前に、条件付きチェックを使用してオプションが選択されているかどうかを判断します。

例:

$options = get_option( 'chec_settings' );
if ( $options['chec_checkbox_field_0'] == '1' ) {
    add_action ('admin_bar_menu', 'remove_wp_logo', 999 );
}
0
edwardr