2017-08-14 110 views

回答

1

你訂購你的領域和部分的方式是錯誤的,看代碼波紋管測試和作爲一個獨立的插件工作。在你的身邊測試它,然後如果它在主插件邏輯內工作。

<?php 

/** 
* Plugin Name: Example Settings 
* Description: Example Settings 
* Version: 1.0 
**/ 

class Member_Only { 
    /* Create blank array */ 
    public function __construct() { 
     //$this = []; 
     // Hook into the admin menu 
     add_action('admin_menu', array($this, 'settings_page')); 
     add_action('admin_init', array($this, 'setup_init')); 
    } 
    public function settings_page() { 
     //Create the menu item and page 
     $parent_slug = "member_only_fields"; 
     $page_title = "Member Only Content Settings Page"; 
     $menu_title = "Member Only Content"; 
     $capability = "manage_options"; 
     $slug = "member_only_fields"; 
     $callback = array($this, 'settings_page_content'); 
     add_submenu_page("options-general.php", $page_title, $menu_title, $capability, $slug, $callback); 
    } 
    /* Create the page*/ 
    public function settings_page_content() { ?> 
     <div class="wrap"> 
      <h2> Member Only Content </h2> 
      <form method="post" action="options.php"> 
       <?php 
        settings_fields("member_only_fields"); 
        do_settings_sections("member_only_fields"); 
        submit_button(); 
       ?> 
      </form> 
    <?php } 
    /* Setup section_callback */ 
    public function section_callback($arguments) { 
     /* Set up input*/ 
     switch($arguments['id']){ 
      case "categories" : 
       echo "Categories that will trigger the member only message."; 
       break; 
      case "loginURL": 
       echo "The login URL of your site. "; 
      break; 
     } 
    } 
    public function setup_init() { 
     register_setting("member_only_fields", "categories"); 

     add_settings_section("categories", "Member Only Categories: ", array($this, 'section_callback'), "member_only_fields"); 
     add_settings_field('categories', 'Categories: ', array($this, 'field_callback'), 'member_only_fields', 'categories'); 

     add_settings_section("loginURL", "Login URL: ", array($this, 'section_callback'), "member_only_fields"); 
    } 
    /* Create input fields*/ 
    public function field_callback ($arguments) { 
     echo "<input name=\"categories\" id=\"categories\" type=\"text\" value=\"" .get_option("categories"). "\"\>"; 
    } 
} 

new Member_Only();