I only wanted one small thing: paste an image into WordPress and have it uploaded automatically. That simple wish turned into a long night of plugin testing, editor compatibility checks, PHP version limits, and finally a WordPress upgrade that almost broke the site.
My WordPress install was old. I had not updated it for a long time, mainly because every update had turned into a hassle. The hosting environment offered PHP 7.2 and 7.3, but not 7.4. A lot of the plugins I tried expected either a newer WordPress version or PHP 7.4, and I did not discover that until after I had installed and tested them.
The Paste was one example. I eventually found a version that did not require PHP 7.4 but still worked on PHP 7.2. I chose it by comparing plugin release dates with WordPress release dates, using the Advanced View page on the plugin directory and then picking a version from the download page. The Paste supported the WordPress classic editor. It did not support Markdown. That was another detail I only learned by testing.

I also read a post about copying and pasting images directly into the WordPress editor. Pasteboard was only barely compatible with Markdown plugins. The more I tested, the more I realized that WordPress editors themselves were part of the problem. Some plugins simply did not support the editor I was using.

Paste to Media probably supported the classic WordPress editor as well. I kept testing it with the Markdown editor.

Clipboard should also work with the classic editor. At the moment it does not support the Markdown editor.

Gutenberg did support pasting and uploading images. That part worked fine, but it had to be done in the browser. If the connection dropped, there was no local autosave, and losing work that way would be painful. Testing all of these made me understand what kind of editor I actually needed.
I had used Scrivener and Open Live Writer before. They are offline editors. Because they did not support pasting an image and uploading it automatically, articles with images could not be published. I suspected the problem was tied to the editor, but I did not want to spend more time testing that path.

To install the plugin I wanted, I upgraded WordPress to the latest version. I backed up the data and clicked the automatic upgrade button. Without exception, the site went to a maintenance page. I deleted a PHP file and got back into the WordPress admin. Then every click gave the same error message. I did not take a screenshot. I noticed the caching plugin and clicked clear cache. That made things worse: I could not get into the admin at all. I thought I would have to reinstall WordPress, and I started sweating.
I kept looking up the error and researching which WordPress versions could run on PHP 7.2. Then I found a guide to updating WordPress manually from a CSDN post, and I decided to try it. The manual update worked.

Near the end, I found that Obsidian has a plugin for publishing to WordPress. This article was written in Obsidian. I had installed Obsidian a while ago; like Notion, I opened it, looked around, and did not do much with it. Logseq became my diary instead. I use it for notes and things I do not want to publish, which is convenient.
While looking into reinstalling WordPress, I found a few resources worth keeping: a list of WordPress versions and their corresponding PHP versions, a discussion of the p-includes/class-wp-hook.php(316): WP_Hook->apply_filters(NULL, Array) #2 error, and a local download page for WordPress 6.5.2 Chinese and English packages with update notes. I did not end up reinstalling, but those references were useful during the scramble.