Ok Let's say I have 2 Categories. If a user select category A, they have to fill in metabox A and similarly for category B, it's metabox B. So my question is, I want to do a validate check, whereby if the user has checked category A, then it is only metabox A that has been filled in, and the same applies for category B. I know JQuery is my best bet - but not too sure how to go about it or how to call the function when clicking the publish button.

  • Or even a way whereby if a category is selected it opens a metabox relevant to that category. Commented Mar 31, 2011 at 9:44

3 Answers 3


Apologies for the delay - what I did was basically created a .js file and places it within my theme folder - for example themes/nameoftheme/custom/checkcode.js

Then using jquery - I created my code - here's a snippet:

jQuery('#in-category-3').attr('checked', this.checked);
jQuery('#in-category-1').attr('checked', false);
jQuery('#in-category-4').attr('checked', false);
jQuery('#in-category-5').attr('checked', false);
jQuery('#in-category-7').attr('checked', false);
jQuery('#in-category-8').attr('checked', false);
jQuery('#in-category-9').attr('checked', false)

It seems pretty explanatory but fyi in-category - refers to the category selected in the category box. attr - refers to attribute and as it's a checkbox - hence checked. when catgeory-6 is selected, the metaboxes defined by the name is either hidden or not.

After this - we now need to call this the javascript file - and this is done by going to the functions.php file of your theme.

here you put -

wp_enqueue_script('myscript', '/wp-content/themes/nameoftheme/custom/checkbox.js');

fyi wp_enqueue_script is the bit that calls the script when the page is loaded.

I hope this is clear for people.


I have found this plugin:


which has provided a good foundation and am going to attempt to hack it and take it from there.

  • Additional follow-up information should be added into the original question(unless you're providing the answer to your own question).
    – t31os
    Commented Apr 1, 2011 at 11:54
  • Great that you are on track to solve this problem on your own. If you can update this answer with a complete solution once you found it, that would be even better!
    – Jan Fabry
    Commented Apr 5, 2011 at 14:09

Every metabox has own ID.

We can handle onchange event of category checkboxes. Hide everything on load and then show, when user set a category.

  • I've got the jquery bit sorted - just a quick question, how I add the function to the add new post part... I am assuming it is to do with the add_action Commented Apr 1, 2011 at 16:33
  • scratch my last comment this helped alot - planetozh.com/blog/2008/04/… Commented Apr 1, 2011 at 17:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.