Можно ли перестроить таблицу wp_term_relationships?

Глупо, я урезал стол своих сообщений, не думая о терминах отношений. Теперь у меня есть куча 404-х, потому что есть разрывные отношения. Можно ли перестроить таблицу с правильными сопряжениями?

Если ваше значение AUTO_INCREMENT не было сброшено, и ваши новые сообщения будут по-прежнему иметь уникальный ID и вы можете сделать следующее:

 SELECT tr.*, p.ID FROM wp_term_relationships AS tr LEFT JOIN wp_posts AS p ON tr.object_id = p.ID WHERE p.ID is NULL; 

чтобы определить, какие отношения являются сиротами, и использовать DELETE FROM чтобы исправить это.

warning: Усечение wp_term_relationships удаляет все в этой таблице! если вы хотите только удалить отношения тегов, то убедитесь, что вы используете правильный sql.

После обрезания таблицы wp_term_relationships я использовал собственный скрипт для повторной пометки моих сообщений. Вы можете сделать что-то подобное:

 $numposts = wp_count_posts(); $posts = get_posts(array('numberposts'=>(int)$numposts->publish)); foreach($posts as $post){ $tags = myCustomTaggingFunc($post); //this returns an array of tags wp_update_term($post->ID,$tags); } 

довольно простой.