I would like to make metaboxes as fixed elements, removing the expand function and the drag-and-drop function.
Any ideas?
I would like to make metaboxes as fixed elements, removing the expand function and the drag-and-drop function.
Any ideas?
You must be logged in to post a comment.
Deregistering the postbox script seemed a little bit drastic and as mentioned the “Edit” button for the permalink slug does not work as expected anymore.
I actually came up another method which uses filters from WordPress and the functionality of the jQuery UI sortable plugin allowing to cancel the sort when it is issued from specific element(s) through the cancel option.
Context
WordPress 3.4.2 uses jQuery UI 1.8.20. Here’s the initialization code that is used in postbox.js (I’ve stripped down the not relevant options):
So the plugin creates a sortable list for elements
.postbox
. The sort is issued with the child element.hndle
.Solution
Adding classes to the
.postbox
elementsWordPress provides a filter hook to customize the css classes added to the postboxes:
{page}
is the page the metabox is displayed on{id}
is the metabox idSo if I have a metabox with id “_movie_details_metabox” applied for a custom post type called “movie_type”, you can do this:
Alter jquery ui sortable instance
Then you can insert a footer script in the admin area to alter the sortable instance to cancel the sort event if it is issued through the
.hndle
element from a postbox with the added css classnot-sortable
:Postboxes with the css class
.not-sortable
cannot be sorted anymore, the other ones still can.deregister the ‘postbox’ script. Place the following in your theme’s
functions.php
or in a plugin file.I did a very cursory test and it does stop the dragging and the folding, and I don’t notice anything broken.
The little folding arrow still show up but that is CSS not Javascript. If it bothers you you can kill it with:
To answer half of the question, this is how you remove folding in your custom post type:
php for including css for post.php edit page
mycustomstyle.css