创建custom post type后,不想每次都手动输入标签和指定目录,这里有一段代码可以让你为custom post type指定默认的分类目录和标签,这样每次只需要点击保存即可,当然,这需要你的custom post type支持category和tag。

这段代码会检测要发布的文章是否指定了分类和标签,如果没有则应用默认设置,放在主题的functions.php中或做成插件。

/* set default category for custom post type */
function add_custom_default_term_automatically($post_ID) {
	global $wpdb;
	if(!wp_is_post_revision($post_ID)) {
		$defaultcat = array (8); //默认目录的ID
		$defaultterm = 'tag-name'; //默认的标签,用逗号分隔
                //如果文章没有指定任何目录,则应用默认设置
		if( !has_term('','category',$post_ID) ){
			wp_set_object_terms( $post_ID, $defaultcat, 'category');
		}

                //如果文章没有指定任何标签,则应用默认设置
		if( !has_term('','post_tag',$post_ID) ){
			wp_set_post_terms( $post_ID, $defaultterm, 'post_tag',true);
		}
	}
}
add_action('publish_book', 'add_default_term_automatically',10);

用到的action叫做

publish_my-custom-post-type

my-custom-post-type是你注册的custom post type的名称,例如上述代码中注册的post type名称是book