我有一个自定义的帖子类型“蔬菜”
我有一系列用于一年中每个月的自定义字段作为复选框
我有一个自定义分类“季节”,我想根据在自定义字段中选中的框来分配它
夏季(如有)六月七月八月
秋季(如有)9月10月11月
冬季(如有)12月1月2月
春季(如有)3月4月5月
因此,可根据检查的自定义字段,将蔬菜分配为所有季节或单个季节
add_action( \'save_post\', \'assign_cat_to\', 10, 1 );
function assign_cat_to( $post_id ) {
if ( \'seasonal-product\' !== get_post_type( $post_id ) ) {
return;
}
$term_slugs = array();
foreach ( $_POST as $field => $value ) {
if ( 0 === strpos( $field, \'wpcf-available-in-\' ) && \'1\' === $value ) {
$term_slugs[] = str_replace( \'wpcf-available-in-\', \'\', $field );
}
}
if ( empty( $term_slugs ) ) {
return;
}
$term_ids = array();
foreach ( $term_slugs as $term_slug ) {
$term = get_term_by( \'slug\', $term_slug, \'season\' );
$term_ids[] = $term->term_id;
}
wp_set_object_terms( $post_id, $term_ids, \'season\' );
}
我根据实际字段和术语进行了一些更新,但我仍然不知道如何为术语指定“春、夏、秋、冬”。
或者,我可以将季节名称“春、夏、秋、冬”存储到数据库中,而不是“1”,这样会更容易写入术语slug吗?
SO网友:ClemC
通过编程将术语和分类法分配给您的自定义帖子怎么样wp_set_object_terms
?
add_action( \'save_post\', \'assign_cat_to\', 10, 1 );
function assign_cat_to( $post_id ) {
if ( \'vegetables\' !== get_post_type( $post_id ) ) {
return;
}
$term_slugs = array();
foreach ( $_POST as $field => $value ) {
if ( 0 === strpos( $field, \'available_in_\' ) && \'1\' === $value ) {
$term_slugs[] = str_replace( \'available_in_\', \'\', $field );
}
}
if ( empty( $term_slugs ) ) {
return;
}
$term_ids = array();
foreach ( $term_slugs as $term_slug ) {
$term = get_term_by( \'slug\', $term_slug, \'seasons\' );
$term_ids[] = $term->term_id;
}
wp_set_object_terms( $post_id, $term_ids, \'seasons\' );
}