Developing a secure front end posting form

Hopefully the code will be sufficient to describe the key points, but please do comment if you have any further questions: <?php class WPSE_Submit_From_Front { const NONCE_VALUE = ‘front_end_new_post’; const NONCE_FIELD = ‘fenp_nonce’; protected $pluginPath; protected $pluginUrl; protected $errors = array(); protected $data = array(); function __construct() { $this->pluginPath = plugin_dir_path( __file__ ); $this->pluginUrl = … Read more

Disallow file edit not preventing plugin install

I would convert the site to a subsite on a multi-site instance, you can then have an approved list of plugins and themes. This answer might help more. You could also create a new user type that does not have access to the plugins/themes areas and only publish those details.

Can I force a password change?

Not out of the box, but you could implement it by: Adding a user meta on user create. Dropping that meta on user password update. Redirecting the user to his profile page, from anywhere else, if the user meta is around.

Options for restricting access to wp-admin

You could make it a mu-plugin (‘Must Use’ plugin). Any PHP file you put into /wp-content/mu-plugins/ will automatically get included in WordPress. You can’t deactivate the plugin (unless you have ftp access to the server). If you go with a mu-plugin, make sure to put the functionality into a subdirectory and bootstrap it with a … Read more