您需要检查$_POST
对于正在提交的相同数据,也可以使用字段(或者更好的字段)查找name
字段输入的属性-它可能与现有的键匹配。例如:。
function add_sermons_automatically($post_ID) {
if ( ( (isset($_POST[\'imic_vimeo_video\'])) && ($_POST[\'imic_vimeo_video\'] != \'\') )
|| ( (isset($_POST[\'imic_mp4_video\'])) && ($_POST[\'imic_mp4_video\'] != \'\') )
|| ( (isset($_POST[\'imic_ogg_video\'])) && ($_POST[\'imic_ogg_video\'] != \'\') )
|| ( (isset($_POST[\'imic_webm_video\'])) && ($_POST[\'imic_webm_video\'] != \'\')
|| ( (isset($_POST[\'imic_youtube_video\'])) && ($_POST[\'imic_youtube_video\'] != \'\') ) ) {
// (see alternative below)
$sermons_cat = array(28);
wp_set_object_terms( $post_ID, $sermons_cat, \'sermon-category\');
} else {
// optionally remove the cateogory (see alternative below)
// wp_set_object_terms( $post_ID, \'\', \'sermon-category\');
}
}
如果以这种方式检查,而不是检查数据库,那么如果删除了所有视频值,也可以自动删除类别。
请注意,这样做将覆盖选中的任何其他类别,如果要分配多个类别,则需要执行以下操作wp_get_object_terms
首先,在(重新)设置类别之前,将其添加到该数组中。例如:。
$terms = wp_get_object_terms( $post_ID, \'sermon-category\');
$catids = array();
foreach ($terms as $term) {$catids[] = $term->term_id;}
$catids[] = \'28\'; // vido sermon category
wp_set_object_terms($post_ID, $catids, \'sermon-category\');
自动删除视频类别,同时保留其他类别类似:
$terms = wp_get_object_terms( $post_ID, \'sermon-category\');
$catids = array();
foreach ($terms as $term) {
if ($term_id != 28) {$catids[] = $term->term_id;}
}
wp_set_object_terms($post_ID, $catids, \'sermon-category\');
最后,您应该在发布和更新(保存)上执行此操作。。。
add_action(\'publish_sermon\', \'add_sermons_automatically\');
add_action(\'save_sermon\', \'add_sermons_automatically\');