refactor: DiviTextSearch out of the replace-text ability (M2)

The SQL prefilter and the per-page hit computation move to DiviTextSearch;
DiviPageLoader::loadWritable serves DiviWriter::page and the dry run;
PostStatuses::NOT_CONTENT replaces the duplicated status list (same set,
order in the SQL list only). The private log() wrapper is inlined.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
This commit is contained in:
2026-09-26 18:26:10 +02:00
co-authored by Claude Opus 5.5
parent d2cc82f31b
commit afa19ffcd8
7 changed files with 185 additions and 117 deletions
@@ -0,0 +1,15 @@
<?php
declare(strict_types=1);
namespace LIT\MCP\Integrations\WordPress;
/** Post statuses shared by the plugin's own SQL queries. */
final class PostStatuses
{
/**
* Rows that are no content of the site (auto drafts, trash, revisions and attachments), as a
* SQL list for "post_status NOT IN (…)". A constant – never built from input.
*/
public const NOT_CONTENT = "'auto-draft', 'trash', 'inherit'";
}