What is the best method to close off the backend?

If you know the sub-net of your VPN you could restrict access to /wp-admin via .htaccess using standard Apache rules. <Directory /var/www/wp-admin/> Order deny,allow Allow from 192.168.1.0/24 Allow from 127 </Directory> Obviously you’d need to adjust the directory and IP address subnet to suit your needs. To restrict access to a specific file: <Files _FILE_.php> … Read more

how do I force a single column layout in screen layout

You can use the filter screen_layout_columns to set only one column for the post screen get_user_option_screen_layout_post to force the user option to 1. If you want to use that for custom post type then use get_user_option_screen_layout_{post_type} The following code will do it: function so_screen_layout_columns( $columns ) { $columns[‘post’] = 1; return $columns; } add_filter( ‘screen_layout_columns’, … Read more

sortable custom column in media library

You cannot do a sort on the attachment meta data specifically because it’s stored in a serialized string. Whilst WP_Query can sort on meta values it can’t sort on data that’s serialized. For example wp_get_attachment_metadata fetches and unserializes that for you inside the column callback, but MySQL queries can’t sort on that type of data. … Read more

How to hide or remove unwanted widgets on Multisite installation?

Add this to your functions.php file: function jpb_unregister_widgets(){ unregister_widget(‘WP_Widget_Pages’); unregister_widget(‘WP_Widget_Calendar’); unregister_widget(‘WP_Widget_Archives’); unregister_widget(‘WP_Widget_Links’); unregister_widget(‘WP_Widget_Meta’); unregister_widget(‘WP_Widget_Search’); unregister_widget(‘WP_Widget_Text’); unregister_widget(‘WP_Widget_Categories’); unregister_widget(‘WP_Widget_Recent_Posts’); unregister_widget(‘WP_Widget_Recent_Comments’); unregister_widget(‘WP_Widget_RSS’); unregister_widget(‘WP_Widget_Tag_Cloud’); unregister_widget(‘WP_Nav_Menu_Widget’); } add_action( ‘widgets_init’, ‘jpb_unregister_widgets’ ); This will get rid of all default widgets. If you want to keep a certain widget, remove that line from the function above.