Here’s a clever way to set to the default Custom Taxonomy Term for a Post Type (similar to ‘Uncategorized’ in Posts)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
/** * Author: Michael Fields * Source: http://wordpress.mfields.org/2010/set-default-terms-for-your-custom-taxonomies-in-wordpress-3-0/ * Thanks a lot for the nice tweak */ /** * Define default terms for custom taxonomies in WordPress 3.0.1 * * @author Michael Fields http://wordpress.mfields.org/ * @props John P. Bloch http://www.johnpbloch.com/ * * @since 2010-09-13 * @alter 2010-09-14 * * @license GPLv2 */ function mfields_set_default_object_terms( $post_id, $post ) { if ( 'publish' === $post->post_status ) { $defaults = array( 'post_tag' => array( 'taco', 'banana' ), 'monkey-faces' => array( 'see-no-evil' ), ); $taxonomies = get_object_taxonomies( $post->post_type ); foreach ( (array) $taxonomies as $taxonomy ) { $terms = wp_get_post_terms( $post_id, $taxonomy ); if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) { wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy ); } } } } add_action( 'save_post', 'mfields_set_default_object_terms', 100, 2 ); /** * Just change the 'post_tag' with the taxonomy slug you want to target * and change 'taco' and 'banana' with the slug of the term you want to make default * you can add multiple taxonomy at once so the line#19 is applicable only then */ |
Provided from Michael Fields on GitHub