В настоящее время я настраиваю страницу настроек в WordPress для своего плагина. Почему невозможно реализовать функции как защищенные или частные? Класс непосредственно создан. Насколько известно, с java как объектно-ориентированным языком возможно сделать их защищенными в этом сценарии, не так ли?
Должен ли я реализовать переменную $ this обычно с массивом или это WordPress специфично? Это работает прямо сейчас, и я нашел некоторые комментарии в документе, утверждающие, что он сделал это таким образом, но я не понимаю, почему это необходимо.
Я знаю, что это в основном базовые знания php, но поэтому я прошу — учиться. Спасибо за любую помощь
<?php
class SettingsPage {
static $optionGroup = 'juvo_option_group';
static $optionTitle = 'JUVO Anpassungen';
public function __construct() {
// create custom plugin settings menu
add_action('admin_menu', array( $this, 'my_cool_plugin_create_menu'));
//call register settings function
add_action( 'admin_init', array( $this, 'register_juvo_plugin_settings' ));
}
public function my_cool_plugin_create_menu() {
//create new top-level menu
add_options_page(
self::$optionTitle, //Page Title
self::$optionTitle, //Menu Title
'manage_options', //required Capabilities
'juvo-setting', //Slug
array( $this, 'juvo_settings_page')
);
}
public function register_juvo_plugin_settings() {
//register our settings
register_setting( self::$optionGroup, 'privacy_policy_comments' );
}
public function juvo_settings_page() {
?>
<div class="wrap">
<h1><?php echo self::$optionTitle ?></h1>
<form method="post" action="options.php">
<?php settings_fields( self::$optionGroup );
$options = get_option( 'privacy_policy_comments' );
do_settings_sections( self::$optionGroup ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Seitentitel Datenschutzerklärung</th>
<td><input type="text" name="privacy_policy_comments[title]" value="<?php echo esc_attr( $options['title']); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php }
}
if( is_admin() )
$my_settings_page = new SettingsPage();
Задача ещё не решена.
Других решений пока нет …