Intereting Posts
Поиск: как расширить существующий поиск, включив пользовательскую таблицу Как сортировать пользовательские столбцы в admin Как предотвратить автоматическое преобразование тире в & ndash; Загружать файлы plugins'.mo и .po из каталога Использование WordPress 3.5 Media Uploader в мета-окне? PHP, Создание динамической переменной следующая / предыдущая ссылка по ссылке post 2 post Проверьте, отображается ли боковая панель? Текст «Вы вышли из системы» Пользовательский список таксономии: как сделать «выбрать из большинства используемых» по умолчанию для открытия, контрольный список Как использовать «while» и «end while» внутри echo do_shortcode с помощью ACF Repeater? Как мы можем настроить логотип и текст на экране приветствия? Могу ли я сделать метаокс таксономии в выпадающих списках для каждой родительской категории? выбор списка основных категорий без подкатегорий с разбивкой на страницы Как выполнить поиск в определенной категории таксономии

Динамически создавать / удалять термины в таксономии, когда публикуется / сортируется пользовательский тип публикации

Я немного борюсь с созданием и удалением терминов, основанных на том, что пользовательский тип сообщения публикуется и сбрасывается. В идеале я хотел бы создать новый термин в моей пользовательской таксономии, когда публикуется пользовательский тип публикации. Затем, когда сообщение в типе персонализированного сообщения разбивается, мне нужно проверить и убедиться, что счетчик на этом члене равен 0, и если это так автоматически удалить соответствующий термин. Вот что я до сих пор. Функция создания работает правильно, но я не могу понять функцию trashed. Ваш опыт очень ценится !!

<?php /** * Automatically creates terms in 'custom_taxonomy' when a new post is added to its 'custom_post_type' */ function add_cpt_term($post_ID) { $post = get_post($post_ID); if (!term_exists($post->post_name, 'custom_taxonomy')) wp_insert_term($post->post_title, 'custom_taxonomy', array('slug' => $post->post_name)); } add_action('publish_{custom_post_type}', 'add_cpt_term'); ?> 

… и теперь для функции, с которой мне трудно работать, так я хочу:

 /** * Automatically removes term in 'custom_taxonomy' when the post of 'custom_post_type' is trashed */ function remove_cpt_term($post_ID) { $post = get_post($post_ID); $term = get_term_by('name', $post->post_name, 'custom_taxonomy', 'ARRAY_A'); if ($post->post_type == 'custom_post_type' && $term['count'] == 0) wp_delete_term($term['term_id'], 'custom_taxonomy'); } add_action('wp_trash_post', 'remove_cpt_term'); ?> 

Хорошо, я думаю, что я нашел жизнеспособное решение. Kinda разочарован тем, что до сих пор я не нашел возможности напрямую подключиться к trash_{custom_post_type} как я смог на publish_{custom_post_type} . Вот решение для всех, кто борется с этой проблемой. Если у кого-то есть лучшие предложения, пожалуйста, не стесняйтесь делиться!

 /** * Automatically removes term in 'custom_taxonomy' when the post of 'custom_post_type' is trashed */ function remove_cpt_term($post_ID) { $post = get_post($post_ID); $term = get_term_by('slug', $post->post_name, 'custom_taxonomy'); // target only our custom post type && if no posts are assigned to the term if ('custom_post_type' == $post->post_type && $term->count == 0) wp_delete_term($term->term_id, 'custom_taxonomy'); } add_action('wp_trash_post', 'remove_cpt_term');