| @@ -98,9 +98,9 @@ | ||
| 98 | 98 | * Throw away the stored analysis and the consent that went with it. |
| 99 | 99 | * |
| 100 | 100 | * The analysis writes a verdict about this site into the options table and |
| 101 | 101 | * keeps it. That is what makes it survive a reload, but it also means a |
| 102 | - * description of your server's weaknesses — written by a third-party model — | |
| 102 | + * description of your server's weaknesses, written by a third-party model, | |
| 103 | 103 | * sits there indefinitely with nothing to remove it. Somebody should be able |
| 104 | 104 | * to take it back, and clearing the consent means the panel explaining what |
| 105 | 105 | * gets sent is shown again before anything is sent a second time. |
| 106 | 106 | */ |
| @@ -194,9 +194,9 @@ | ||
| 194 | 194 | . "}\n\n" |
| 195 | 195 | . "Rules:\n" |
| 196 | 196 | . "- Rate each of the three areas from 1 (bad) to 5 (good). Do not invent an overall score.\n" |
| 197 | 197 | . "- Only report findings genuinely worth acting on. An empty findings list is a perfectly " |
| 198 | - . "good answer for a healthy site — do not manufacture problems.\n" | |
| 198 | + . "good answer for a healthy site. Do not manufacture problems.\n" | |
| 199 | 199 | . "- Order findings by how much they matter, worst first.\n" |
| 200 | 200 | . "- Be brief. The reader sees the titles first and opens the ones they care about, so a " |
| 201 | 201 | . "title has to work on its own and the detail must not repeat it. No preamble, no restating " |
| 202 | 202 | . "the question, no filler.\n" |
| @@ -210,9 +210,9 @@ | ||
| 210 | 210 | |
| 211 | 211 | public function file_rand( $filesize ) { |
| 212 | 212 | // Write the benchmark file inside a dedicated subfolder of the uploads |
| 213 | 213 | // directory (created on demand), then remove it. wp.org forbids writing to |
| 214 | - // the plugin folder or the uploads root — only a sanctioned subfolder. | |
| 214 | + // the plugin folder or the uploads root, only a sanctioned subfolder. | |
| 215 | 215 | $upload = wp_upload_dir(); |
| 216 | 216 | if ( !empty( $upload['error'] ) || empty( $upload['basedir'] ) ) { return; } |
| 217 | 217 | $dir = trailingslashit( $upload['basedir'] ) . 'meowapps'; |
| 218 | 218 | if ( !wp_mkdir_p( $dir ) ) { return; } |
| @@ -267,9 +267,9 @@ | ||
| 267 | 267 | } |
| 268 | 268 | $all_plugins = get_plugins(); |
| 269 | 269 | $result = []; |
| 270 | 270 | foreach ( $all_plugins as $plugin_file => $plugin_data ) { |
| 271 | - // Plugin file looks like "ai-engine/ai-engine.php" — the slug is the | |
| 271 | + // Plugin file looks like "ai-engine/ai-engine.php", the slug is the | |
| 272 | 272 | // first path segment. Some plugins live at the root (single file), |
| 273 | 273 | // those we just skip; we only care about Meow Apps directories anyway. |
| 274 | 274 | $parts = explode( '/', $plugin_file ); |
| 275 | 275 | if ( count( $parts ) < 2 ) { |