28.02.2011


Удаление у объекта TAXONOMY


Категории: Разработанное нами — Метки: , — Administrator

На момент написания этого поста в составе системного API WordPress мы не нашли такой функции. Речь идет об удалении например у поста категории. Под термином taxonomy в WordPress подразумевается некое свойство у какого-либо из объектов. Стандартными объектами могут быть посты, в 3-ей версии появились еще custom objects. Задача этого поста не дать исчерпывающее объяснение, что такое taxonomies и объекты wordpress, а просто показать, как, например, программно у поста удалить категорию к которой он принадлежит.
Добавьте в файл functions.php активной схемы следующую функцию:

// *** delete object taxonomy ***
function delete_term_taxonomy ($term_id, $taxonomy_id) {
  global $wpdb;
  if (!$term_id || !$taxonomy_id) { return false; }
  $qu = 'DELETE FROM '.DB_NAME.'.wp_term_relationships WHERE object_id = '.$term_id.' AND term_taxonomy_id = '.$taxonomy_id;
  $rez = $wpdb–>query($qu);
  return rez;
}

Вот пример ее использования для удаления у поста категории:

$cat_blocked = get_category_by_slug('_blocked');
delete_term_taxonomy($post_id, $cat_blocked–>term_id);

Я редко использую в программном коде ID объектов, а предпочитаю получать их с помощью кодов, это и делает первая строка примера выше.





Календарь


Архив