2016-08-23 2 views
2

Мне нужно периодически удалять некоторые теги из моей таблицы wp. Сейчас я использую это:Правильно удалить теги wp из массива

DELETE FROM wp_terms WHERE slug = 'tag-to-delete'; 

Но я полагаю, что так, как я делаю это не правильно, потому что я думаю, что я должен удалить также все отношения с термином, не так ли?

Кроме того, мне нужно будет сделать это через functions.php, поместив теги внутри массива. например: $tags_to_delete = tag1, tag2, tag3;

Можно ли это сделать через functions.php? Если да, может кто-нибудь объяснить мне правильный способ сделать это?

Редакцией: Я сумел this solution, но это может быть не окончательное решение, потому что у меня еще есть несколько вопросов:

  1. Является ли это безопасно использовать?
  2. Правильно ли этот запрос или его можно улучшить?
  3. Есть ли способ вернуть количество удаленных тегов?
  4. Есть ли другой способ сделать это?

См. my solution bellow и помогите лучше ответить на этот вопрос.

ответ

0

OK! Я получил эту работу, и я надеюсь, что это может быть полезно для всех. Тем не менее у меня есть некоторые вопросы:

  1. Безопасен ли его использование?
  2. Правильно ли этот запрос или его можно улучшить?
  3. Есть ли способ вернуть количество удаленных тегов?
  4. Есть ли другой способ сделать это?

0

Вы должны использовать функции WordPress для их удаления. Они автоматически очистят отношения:

$tag = get_term($tag_name, $taxonomy); 
if (! $tag || is_wp_error($tag)) { 
    echo 'cant find the tag: ' . $tag_name ; 
} else { 
    wp_delete_term($tag->term_id, $taxonomy); 
}