从自定义字段中检索数据

时间:2017-05-12 08:32:14

标签: php wordpress

我在WP网站上创建了一个选项插件,因此我将此代码写入我的文件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();

我想要的是将我在此字段中设置的数据检索到我的模板文件。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

你只需要调用带有设置字段ID的get_option函数。

例如:

echo get_option('num_tel');

答案 1 :(得分:1)

我找到了解决方案:

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