2016-07-26 6 views
0

Ich bin verzweifelt, ich habe versucht, Ost und West für eine Lösung zu suchen, aber ich kann nicht scheinen, es zu finden. Das Problem ist, ich habe versucht, ein Plugin in WordPress zu machen, die einige einfache Einstellungen registriert. Hier ist der Code:option_page_capability_ funktioniert nicht

add_action('admin_menu', 'test_plugin_setup_menu'); 

function test_plugin_setup_menu(){ 
    add_action('admin_enqueue_scripts', 'wp_enqueue_media'); 
    add_action('admin_init', 'register_my_cool_plugin_settings'); 
    add_menu_page('Menù della settimana', 'Menù della settimana', 'administrator', 'settimana', 'my_cool_plugin_settings_page'); 
} 

function register_my_cool_plugin_settings() { 
    register_setting('my-cool-plugin-settings-group', 'image_url'); 
    register_setting('my-cool-plugin-settings-group', 'date'); 
} 

function goddamit() { 
    return 'edit_posts'; 
} 

add_filter('option_page_capability_settimana', 'goddamit'); 

function my_cool_plugin_settings_page() { ?> 
    <div class="wrap"> 
     <h2>Menù della settimana</h2> 

     <form method="post" action="options.php"> 
      <?php settings_fields('my-cool-plugin-settings-group'); ?> 
      <?php do_settings_sections('my-cool-plugin-settings-group'); ?> 
      <table class="form-table"> 
       <tr valign="top"> 
        <div> 
         <label for="image_url">Carica pdf</label> 
         <input type="text" name="image_url" id="image_url" class="regular-text" value="<?php echo esc_attr(get_option('image_url')) ?>"> 
         <input type="button" name="upload-btn" id="upload-btn" class="button-secondary" value="Carica pdf"> 
        </div> 
       </tr> 

       <tr valign="top"> 
        <div> 
         <label for="date">Date (inserire 'dal x al y di mese')</label> 
         <input type="text" id="date" name="date" value="<?php echo esc_attr(get_option('date')); ?>" /> 
        <div> 
       </tr> 
      </table> 

      <p class="submit"> 
       <input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" /> 
      </p> 

     </form> 
    </div> 
<?php } ?> 

So weit so gut, wenn der Benutzer ein Admin gibt es keine Probleme, wenn der Benutzer ein Editor Sie den verdammten Fehler "Cheatin uh bekommen?‘. Was mache ich falsch?

Jeder schlägt vor, dass die Funktion option_page_capability_ sollte den Slug der Seite haben, tut es, es funktioniert immer noch nicht. Hilfe.

Antwort

0

Was erwarten Sie sonst noch, wenn Sie die Funktion administrator in add_menu_page aufrufen?

add_menu_page('Menù della settimana', 'Menù della settimana', 'administrator', 'settimana', 'my_cool_plugin_settings_page'); 

Set es edit_posts

add_menu_page('Menù della settimana', 'Menù della settimana', 'edit_posts', 'settimana', 'my_cool_plugin_settings_page'); 

Und das seltsame Filter entfernen.

+0

nein, funktioniert nicht – user3847141