Intereting Posts
get_the_content ("more …") возвращает полный текст Эффективность wp_options по сравнению с новой таблицей Регистрация скрипта / стиля: возможно ли настроить строку запроса версии через плагин? Тег с возможностью псевдонима У меня на моем сайте много разных продуктов, как я могу их отображать в определенных категориях? 404 в разбивке на страницы, но со странным завихрением (ошибка 404 только при наличии одного сообщения на второй странице) Может ли плагин добавлять содержимое заголовка / нижнего колонтитула / тела? Параметры встраивания YouTube? Инструкции плагина-списка-категории сортировать дочерние страницы в admin Пользовательская таксономия Сортировка для пользовательского запроса Избавление от # 038; когда строка заменяет содержимое Как изменить способность, необходимую для доступа к параметрам плагина? Как отправить данные на боковой панели? Создайте структуру URL-адресов для моих блогов на основе категорий и подкатов

Удаление данных из пользовательской таблицы при удалении сообщения

Я хочу удалить почтовый идентификатор моей пользовательской таблицы при удалении сообщения. Я пробовал этот путь, ничего не случилось. Пожалуйста помоги.

add_action('delete_post', 'delete_data'); function delete_data($post_id) { global $wpdb; $table_name = $wpdb->prefix . 'post_order'; if ($wpdb->get_var($wpdb->prepare("SELECT `id` FROM $table_name WHERE `pid` = %d", $post_id))) { $wpdb->query($wpdb->prepare("DELETE FROM $table_name WHERE `pid` = %d", $post_id)); } } 

delete_post срабатывает, когда сообщение удаляется навсегда, а не при его удалении. Я не знаю, насколько это актуально, но помните об этом. Это единственная реальная часть WordPress этого вопроса. Остальное – плохой PHP.

Переменные не расширяются внутри одинарных кавычек . Вы отправляете запрос в базу данных, которая в буквальном смысле выглядит

 SELECT `id` FROM $table_name WHERE `pid` = XxX 

То, что вы хотите, либо

 $wpdb->prepare('SELECT `id` FROM '.$table_name.' WHERE `pid` = %d', $post_id) 

Или

 $wpdb->prepare("SELECT `id` FROM {$table_name} WHERE `pid` = %d", $post_id) 

Чтобы запустить функцию, когда вы удаляете сообщение, вам, вероятно, понадобится один или несколько крючков перехода статуса . Но слово или предостережение: если вы удалите из своего стола сообщение «мусор», вы не сможете его отменить. Функция «восстановить» не будет работать правильно на этих постах.