Řeším jinou věc. Používám toto nastavení:
add_action('admin_menu', 'about_create_menu');
function about_create_menu() {
add_theme_page('Nastaveni vzhledu', 'Nastaveni vzhledu', 'edit_theme_options', 'theme_settings', 'about_settings_page');
add_action( 'admin_init', 'register_mysettings' );
}
function register_mysettings() {
register_setting( 'about-settings-group', 'about_code' );
}
function about_settings_page() {
?>
<div class="wrap">
<h2>Nastaveni vzhledu</h2>
<form method="post" action="options.php">
<?php settings_fields('about-settings-group'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">About</th>
<td><textarea name="about_code"><?php echo get_option('about_code'); ?></textarea></td>
</tr>
</table>
<p class="submit"><input type="submit" class="button-primary" value="<?php _e('Ulozit zmeny') ?>" /></p>
</form></div>
<?php } ?>
Problém je v tom, že uživatelům, kteří nemají dostatečná práva se data neuloží a místo toho se jim zobrazí hláška “Nepodvádíte?”
Práva uživatelů mám definována ve functions.php. Mají zakázanou stránku “Nastavení” pomocí 'manage_options' => false
, a díky tomu jim to nefunguje.
Jak to udělat aby to fungovalo všem uživatelům a přitom stránka “Nastavení” pro ně zůstala skrytá? Díky.