this is the issue:
add_action('admin_menu', 'bittech_login_settings');
function bittech_login_settings() {
add_menu_page('BitTech Login Settings',
'BitTech Login Settings',
'administrator',
'bittech_settings',
'bittech_login_settings');
$filename = "../wp-content/plugins/bittech_login/include/config.php";
$contents = file_get_contents($filename);
if (isset($_POST['field'])) {
file_put_contents($filename, $_POST['field']);
}
?>
<form action="" method="POST">
<textarea name="field" cols="300" rows="200"><?php
echo $contents;
?></textarea><br>
<input type="submit" value="Save">
</form>
<?php
}
?>
the code is working correctly but when it is put in it appears above the plugin panel. i was wondering what the fix for this was. that way i dont have this issue in the future. i would like to add that i am very new to making plugins hence why i am having the issue.
You’re using
add_menu_page
wrong. The functionbittech_login_settings
should be only:And put the contents of the page in the callback function
bittech_login_settings_callback
. Also, these lines don’t make much sense:You should probably store that field in the database with
update_option
and retrieve it withget_option()
.The Codex provides guidance for determining which
add_*_page()
call to use for a given menu item.You’re using
add_menu_page()
, which adds a top-level menu. You could try using a more-appropriate sub-menu; perhaps one of the following three:add_options_page()
– add a submenu toSettings
add_management_page()
– add a submenu toTools
add_plugins_page()
– add a submenu toPlugins
Refer to the Codex entry linked above for additional options.