简体   繁体   中英

Retrieve data from custom field

I created a options plugin in my WP site, so I write this code into my file options.php :

class MySettingsPage
{
    /**
     * Holds the values to be used in the fields callbacks
     */
    private $options;

    /**
     * Start up
     */
    public function __construct()
    {
        add_action( 'admin_menu', array( $this, 'add_plugin_page' ) );
        add_action( 'admin_init', array( $this, 'page_init' ) );
    }

    /**
     * Add options page
     */
    public function add_plugin_page()
    {
        // This page will be under "Settings"
        add_options_page(
            'Settings Admin', 
            'Champs personnalisés', 
            'manage_options', 
            'my-setting-admin', 
            array( $this, 'create_admin_page' )
        );
    }

    /**
     * Options page callback
     */
    public function create_admin_page()
    {
        // Set class property
        $this->options = get_option( 'my_option_name' );
        ?>
        <div class="wrap">
            <h1>Champs personnalisés</h1>
            <form method="post" action="options.php">
            <?php
                // This prints out all hidden setting fields
                settings_fields( 'my_option_group' );
                do_settings_sections( 'my-setting-admin' );
                submit_button();
            ?>
            </form>
        </div>
        <?php
    }

    /**
     * Register and add settings
     */
    public function page_init()
    {        
        register_setting(
            'my_option_group', // Option group
            'my_option_name', // Option name
            array( $this, 'sanitize' ) // Sanitize
        );

        add_settings_section(
            'setting_section_id', // ID
            'Mes champs personnalisés', // Title
            array( $this, 'print_section_info' ), // Callback
            'my-setting-admin' // Page
        );  

        add_settings_field(
            'num_tel', // ID
            'Numéro de téléphone', // Title 
            array( $this, 'num_tel_callback' ), // Callback
            'my-setting-admin', // Page
            'setting_section_id' // Section           
        );     
    }


    /** 
     * Print the Section text
     */
    public function print_section_info()
    {
        print 'Renseignez les champs';
    }

    /** 
     * Get the settings option array and print one of its values
     */
    public function num_tel_callback()
    {
        printf(
            '<input type="text" id="num_tel" name="my_option_name[num_tel]" value="%s" />',
            isset( $this->options['num_tel'] ) ? esc_attr( $this->options['num_tel']) : ''
        );
    }

}


    $my_settings_page = new MySettingsPage();

What I want is to retrieve data that I set into this field to my template file.

Thanks for your help !

You just need call get_option function with ID of setting field.

For example:

echo get_option('num_tel');

I just find the solution :

$options = get_option('my_option_name');
echo $options['num_tel']

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM