2017-05-12 75 views
0

我創建了一個選擇插件在我的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(); 

我想要的是找回我設置到這個領域來的數據我模板文件。

感謝您的幫助!

回答

1

你只需要調用帶設置字段ID的get_option函數。

例如:

echo get_option('num_tel'); 
1

我只是找到了解決辦法:

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

哦,是的。以數組形式獲取所有設置組。 –