SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | /* | |
3 | Plugin Name: WordPress Options Example | |
4 | Description: WordPress options page example for a question asked in <a href="https://www.facebook.com/groups/1709897292614128">WordPress For Developers Group</a> | |
5 | Plugin URI: https://www.facebook.com/groups/1709897292614128 | |
6 | Author: Yehuda Hassine | |
7 | Author URI: https://www.facebook.com/groups/1709897292614128 | |
8 | Version: 1.0 | |
9 | License: GPL2 | |
10 | */ | |
11 | register_activation_hook( __FILE__, 'yh_activate' ); | |
12 | function yh_activate() { | |
13 | add_option( 'yh_options_example', array( 'firstname' => '', 'lastname' => '' ) ); | |
14 | } | |
15 | ||
16 | register_deactivation_hook( __FILE__, 'yh_deactivate' ); | |
17 | function yh_deactivate() { | |
18 | delete_option( 'yh_options_example' ); | |
19 | } | |
20 | ||
21 | add_action( 'admin_menu', 'yh_add_options_page' ); | |
22 | function yh_add_options_page() { | |
23 | add_options_page( 'WordPress Options Example', 'WordPress Options Example', 'manage_options', 'yh', 'render_options_page' ); | |
24 | } | |
25 | ||
26 | function render_options_page() { | |
27 | ?> | |
28 | <div class="wrap"> | |
29 | <?php | |
30 | $options = get_option( 'yh_options_example' ); | |
31 | ||
32 | if ( isset( $_POST['submit'] ) && isset( $_POST['data'] ) ) { | |
33 | $data = array_map( 'sanitize_text_field', wp_unslash( $_POST['data'] ) ); | |
34 | ||
35 | update_option( 'yh_options_example', $data ); | |
36 | ?> | |
37 | <div id="setting-error-settings_updated" class="updated settings-error notice is-dismissible"> | |
38 | <p> | |
39 | <strong>Settings saved.</strong> | |
40 | </p> | |
41 | <button type="button" class="notice-dismiss"> | |
42 | <span class="screen-reader-text">Dismiss this notice.</span> | |
43 | </button> | |
44 | </div> | |
45 | <?php } ?> | |
46 | <form action="" method="post"> | |
47 | <label for="firstname"> | |
48 | <input type="text" id="firstname" name="data[firstname]" value="<?php echo show_option( $options['data']['firstname'] ); ?>" /> | |
49 | </label> | |
50 | <label for="lastname"> | |
51 | <input type="text" id="lastname" name="data[lastname]" value="<?php echo show_option( $options['data']['lastname'] ); ?>" /> | |
52 | </label> | |
53 | <button class="button button-primary" type="submit" name="submit">Submit</button> | |
54 | </form> | |
55 | </div> | |
56 | <?php | |
57 | } | |
58 | ||
59 | function show_option( $option ) { | |
60 | if ( $option && ! empty( $option ) ) { | |
61 | return esc_attr( $option ); | |
62 | } else { | |
63 | return ''; | |
64 | } | |
65 | } |