您可以将其构建到一个类中。
显然,可以根据需要更改方法名称,这些只是我在插件中使用的名称。
您会注意到,我还添加了两个健全性检查-一个是为了阻止人们直接访问您的插件页面(即在加载核心文件之前),另一个是为了防止访问on_save_settings
方法。
我还应该告诉你Writing a Plugin Codex, 其中有很多例子,可以指导您进一步参考资料,以帮助您完成此过程。
最后,我建议您还可以查看Settings API. 这不是一个灵丹妙药,但它可以让管理插件设置变得更加容易。
/**
* Avoid direct calls to this file where WP core files are not present
*/
if(!function_exists(\'add_action\')) :
header(\'Status: 403 Forbidden\');
header(\'HTTP/1.1 403 Forbidden\');
exit();
endif;
$sm_admin = new SM_Admin();
class SM_Admin{
/** Constructor */
function __construct(){
add_action(\'admin_menu\', array(&$this, \'on_admin_menu\')); // Add the admin menu
add_action(\'admin_post_change_socialmedia\', array( &$this, \'on_save_settings\')); // Save any changes
}
/**
* Add the admin menu
*/
function on_admin_menu(){
add_menu_page( \'Social Media\', \'Social Media\', \'read\', SM_CUSTOMPOSTTYPE, array( &$this, \'on_show_page\' ), \'\', 22 );
}
/**
* Render the page
*/
function on_show_page(){
?>
<form action="<?php echo admin_url( \'admin-post.php\' ); ?>" method="post">
<input type="hidden" name="action" value="change_socialmedia">
<!-- { Your form... } -->
<?php wp_nonce_field(\'ms_change_socialmedia\', \'ms_nonce\'); ?>
<?php echo get_submit_button(\'Speichern\'); ?>
</form>
<?php
}
/**
* Save the settings
*/
function on_save_settings(){
if(!isset( $_POST[\'ms_nonce\']) || ! wp_verify_nonce( $_POST[\'ms_nonce\'], \'ms_change_socialmedia\')) :
wp_die(new WP_Error(
\'invalid_nonce\', __(\'Sorry, I\\\'m afraid you\\\'re not authorised to do this.\')
));
exit;
endif;
echo \'<pre>\'; print_r($_POST); echo \'</pre>\';
die(\'Hey, it works! You can now edit the \\\'on_save_settings\\\' method to sanitize and save your settings as you require.\');
wp_redirect($_POST[\'_wp_http_referer\']);
}
}