2017-05-12 22 views
0

Ich erstelle Plugin auf Basis der Kesselplatte Struktur und ich versuche, Admin Menü Seite erstellen, aber ich bekomme einen Fehler. Unten ist mein Code.Aufruf zu undefinierte Funktion settings_fields() in Kesselplatte Plugin-Struktur

Code unten in der Klasse-plugin-name.php innerhalb Admin-Haken,

$this->loader->add_action('admin_menu', $plugin_admin, 'define_admin_page'); 
$this->loader->add_action('admin_init', $plugin_admin, 'register_setting'); 

innerhalb Klasse-plugin-name-admin.php,

public function define_admin_page(){ 

     add_menu_page(
      __('SEO Boost', 'seo-boost'), 
      __('SEO Boost', 'seo-boost'), 
      'manage_options', 
      'seo-boost', 
      array(&$this, 'seo_boost_page_callback') 
     );   
    } 

    public function seo_boost_page_callback(){ 
     include_once 'partials/plugin-name-admin-display.php'; 
    } 

    public function register_setting(){ 
     add_settings_section(
       $this->option_name.'_general-section', 
       __('General', 'seo-boost'), 
       array($this, $this->option_name . '_general_line'), 
       $this->plugin_name 
       ); 

    add_settings_field(
      $this->option_name . '_text', 
      __("Text box label:", 'seo-boost'), 
      array($this, $this->option_name . '_text_api_element'),  
      $this->plugin_name, 
      $this->option_name.'general-section', 
      array('label_for' => $this->option_name . '_text') 
     ); 

    register_setting($this->option_name.'general-section', $this->option_name . '_text');   

    } 

    public function seo_boost_general_line(){ 
     echo '<p>' . __('Please change the settings accordingly.', 'outdated-notice') . '</p>'; 
    } 

    public function seo_boost_text_api_element(){ 
     $text = get_option($this->option_name . '_text'); 
     echo '<input type="text" name="' . $this->option_name . '_text' . '" id="' . $this->option_name . '_text' . '" value="' . $text . '"> ' . __('text', 'seo-boost'); 
    } 

innerhalb Plugin-name-Admin- display.php gibt es Code für die Anzeige Admin-Seite Formularfelder,

<div class="wrap"> 
      <h1><?php _e('Seo Settings', 'seo-boost'); ?></h1> 
      <form action="options.php" method="post"> 
     <?php  
     settings_fields($this->option_name.'_general-section'); 
     do_settings_sections($this->plugin_name); 
     submit_button(); ?>    
      </form> 
     </div> 

Aber ich bin immer einen Fehler von Fatal error:

Call to undefined function settings_fields() in plugin-name-admin-display.php on line 20

I ref von diesem Link bin mit Plugin zu erstellen. REf. plugin

+0

Der von Ihnen registrierte Funktionsname ist define_setting_fields, aber Sie schreiben setting_fields und rufen sie auf. Wie wird das Skript dann funktionieren? – Exprator

+0

Check out - https://codex.wordpress.org/Function_Reference/do_settings_fields am unteren Rand dieser Seite, Sie werden ähnliche Funktionen haben, um damit umzugehen. –

+0

do_settings_sections ($ this-> plugin_name, $ this-> option_name .'_ general-section '); versuchen Sie dies @AshPatel – Exprator

Antwort

0

Diese Zeile:

settings_fields($this->option_name.'_general-section'); 

Bezieht sich auf eine Funktion, die nicht vorhanden sein muss ... meinst du define_settings_fields(..) oder add_settings_field(...) hier statt zu benutzen?

+0

nicht wor König tho –

Verwandte Themen