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. – schizdazzle Mar 31 '11 at 9:44
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-6').click(function(){
jQuery('#metabox_one').toggle(this.checked);
jQuery('#metabox_two').hide();
jQuery('#metabox_three').hide();
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:
http://wordpress.org/extend/plugins/require-post-category/
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 Apr 1 '11 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 Apr 5 '11 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 – schizdazzle Apr 1 '11 at 16:33
-
scratch my last comment this helped alot - planetozh.com/blog/2008/04/… – schizdazzle Apr 1 '11 at 17:10