Как удалить оставшиеся данные в базе данных WP после удаления пользовательского сообщения через интерфейс администратора

#php #wordpress

#php #wordpress

Вопрос:

Я пытаюсь создать плагин, который будет удалять изображения и дополнительную информацию из базы данных при удалении пользовательского сообщения (sp_venue) через панель администратора (wp-admin/edit-tags.php )

В плагине я использую это для отслеживания события:

 add_action( 'delete_post', 'kg_delete_post' );

function kg_delete_post($postId) {

    $post = get_post($postId);

    if ($post->post_type != 'attachment') {
        return false;
    }

    $url = str_replace($dirs['baseurl'],'',$post->guid);
    $urlParts = explode("/",$url);
    $numberOfParts = sizeof($urlParts) - 1;

    $dirs = wp_upload_dir();
    $fileNameParts = explode(".", $urlParts[$numberOfParts]);
    $fileName = str_replace('.' . end($fileNameParts), '', $urlParts[$numberOfParts]) . "-*." . end($fileNameParts);
    $path =$dirs['basedir'] ."/".  $urlParts[$numberOfParts-2] . "/" . $urlParts[$numberOfParts-1] . "/";
    $fullPath = $path  . $urlParts[$numberOfParts];
    $fullPathSearch = $path . $fileName;

    @unlink($fullPath);
    foreach (glob($fullPathSearch) as $filename) {
        @unlink($path . $filename);
    }
}
  

Он работает с:

wp_delete_post($Id, true)

Но похоже, что событие при удалении через панель администратора не совпадает.

Что я должен использовать, чтобы это работало? Спасибо.

Ответ №1:

Решается путем добавления моего js в панель администратора, чтобы настроить нажатие на кнопку удаления.