设置 Api 表单“选项页面不在允许的选项列表中。”

问题描述 投票:0回答:1

https://www.youtube.com/watch?v=j9DY0avQagU。请观看这个视频,这个表单是我通过设置 API 开发的。此错误显示“选项页面不在允许的选项列表中”。当我尝试使用此 add_menu_page() 时,此设置 AI 脚本正在工作。但是当我在此选项卡中使用此脚本时。那是行不通的。如何解决这个问题。请你告诉我。

class GeneralTab {       
      public function __construct() {   
         add_action('admin_init', [$this, 'orange_general_settings']);
         $this->orang_general_settings_page();
      }
     
     public function orang_general_settings_page() {
        // You can put your HTML and settings fields here
        echo '<div class="wrap">';
        echo '<h2>General Settings</h2>';
        echo '<hr>';
        echo '<form method="post" action="options.php">';
        
        // Use the correct options group name here
        settings_fields('orange-general-setting-gp');
    
        // Add a settings section
        add_settings_section(
          'orang_general_custom',
          '', // section name blank
          '', 
          'orange_general_custom_page'
        );
    
        // Add a settings field
        add_settings_field(
          'orange_general_email_id', // ID
          'From email address',  // field label name
          [$this, 'orange_general_email'], // callback function
          'orange_general_custom_page', // setting page callback
          'orang_general_custom' // section page callback
        );
    
        add_settings_field(
          'organge_general_from_name_id', // ID
          'From Name',  // field name
          [$this, 'orange_general_name'], // callback function
          'orange_general_custom_page', // setting page callback
          'orang_general_custom' // section page callback
        );
    
        do_settings_sections('orange_general_custom_page');
        submit_button('Save Settings');
        echo '</form>';
        echo '</div>';
      }
    
      public function orange_general_email() {
        $value = get_option('orange_general_emailfield');
        echo '<input type="text" name="orange_general_emailfield" value="' . esc_attr($value) . '">';
      }
    
      public function orange_general_name() {
        $value = get_option('orange_general_namefield');
        echo '<input type="text" name="orange_general_namefield" value="' . esc_attr($value) . '">';
      }
    
      public function orange_general_settings() {
        // Use the correct options group name here
        register_setting('orange-general-setting-gp', 'orange_general_emailfield');
        register_setting('orange-general-setting-gp', 'orange_general_namefield');
      }
    }
wordpress settings
1个回答
0
投票

除了正常的 admin_init 操作之外,还尝试在 rest_api_init 操作上调用 register_setting() 。

我的意思是将以下行添加到 __construct 方法中:

add_action('rest_api_init', [$this, 'orange_general_settings']);
© www.soinside.com 2019 - 2024. All rights reserved.