38.000 postova. 797 institucija. 52.000 tagova.
Ne možete upravljati ovim kroz WordPress admin. Klik-klik-klik bi trajao mesecima.
WP-CLI custom commands su kako to zapravo radite.
Zašto ne admin UI?
WordPress admin je odličan za:
- Pisanje jednog posta
- Upload jedne slike
- Editovanje par meta podataka
WordPress admin nije odličan za:
- Audit 38.000 postova
- Migracija 28.000 fajlova na R2
- Backfill metadata za 17.000 dokumenata
Za bulk operacije, potreban vam je CLI.
9+ komandi koje pokreću platformu
# Revizija postova za probleme kvaliteta
wp studenti audit-posts
# Migracija fajlova na Cloudflare R2
wp studenti migrate-r2
# Backfill institucija za postojeće dokumente
wp studenti backfill-institutions
# Backfill AI excerpts
wp studenti backfill-excerpts
# Import institucija iz JSON-a
wp studenti institutions import_all
# Logo CLI za institucije
wp studenti logo-cli
# Draft audit
wp studenti draft-audit
# Statistike institucija
wp studenti institutions stats
# Reklasifikacija dokumenata
wp studenti documents reclassify_institutions
Pattern: Dry-run uvek
Svaka destruktivna komanda ima --dry-run flag.
# Vidi šta bi se desilo
wp studenti migrate-r2 --dry-run
# Output:
# Would process 1,234 posts
# Would upload 1,234 files to R2
# Would update 1,234 meta fields
# Kada si siguran
wp studenti migrate-r2
Nikada ne trčite bulk operaciju bez dry-run-a prvo.
Pattern: Batch processing
38.000 postova odjednom = memory overflow.
# Procesiraj 100 po 100
wp studenti audit-posts --batch=100
# Nastavi od offseta
wp studenti audit-posts --batch=100 --offset=5000
Progress bar pokazuje gde ste. Ako se prekine, znate odakle da nastavite.
Pattern: Progress bars
$progress = WP_CLIUtilsmake_progress_bar('Processing posts', $total);
foreach ($posts as $post) {
// Process...
$progress->tick();
}
$progress->finish();
Processing posts [======================> ] 75% 00:03:45
Znate koliko dugo će trajati. Znate da nije freeze.
Pattern: CSV export
wp studenti audit-posts --export=audit-results.csv
Output:
post_id,title,issue,suggested_fix
12345,"SEMINARSKI RAD","uppercase","Seminarski rad o..."
12346,"dokument1","too_short","Analiza makroekonomskih..."
Možete pregledati rezultate u Excel/Google Sheets pre nego što primenite.
Pattern: Rate limiting
Eksterni API-ji (Gemini, R2) imaju limite.
// Process in batches with delay
foreach (array_chunk($posts, 10) as $batch) {
foreach ($batch as $post) {
$this->process($post);
}
sleep(1); // Rate limit: 10 per second
}
Bez rate limiting-a, API će vas blokirati.
Primer: audit-posts
Najkompleksnija komanda. Šta radi:
- Query sve postove sa potencijalnim problemima
- Za svaki post, detektuj issue (uppercase, too short, etc.)
- Ako
--fix, pošalji R2 markdown Gemini-ju za reklasifikaciju - Primeni AI sugestije
- Log rezultate
# Samo detektuj
wp studenti audit-posts --dry-run
# Detektuj i exportuj
wp studenti audit-posts --export=issues.csv
# Popravi sve
wp studenti audit-posts --fix
# Popravi samo kategorije
wp studenti audit-posts --fix --only=categories
Rezultat: 3.948 problema detektovano. 3.253 popravljeno. 695 nepopravljivo (nema R2 source).
Primer: institutions import
Import 797 institucija iz JSON-a:
# Dry run
wp studenti institutions import_all --dry-run
# Import sa force update postojećih
wp studenti institutions import_all --force
# Samo jedna zemlja
wp studenti institutions import --country=rs
JSON struktura:
{
"universities": [
{
"name": "Univerzitet u Beogradu",
"faculties": [
{ "name": "Pravni fakultet", "aliases": ["PF"] }
]
}
]
}
Komanda parsira, kreira taxonomy terme, postavlja meta, linkuje hijerarhiju.
Registracija custom komandi
// class-studenti-cli.php
if (defined('WP_CLI') && WP_CLI) {
WP_CLI::add_command('studenti audit-posts', 'Studenti_CLI_Audit_Posts');
WP_CLI::add_command('studenti migrate-r2', 'Studenti_CLI_Migrate_R2');
// ...
}
// class-studenti-cli-audit-posts.php
class Studenti_CLI_Audit_Posts {
/**
* Audit posts for quality issues.
*
* ## OPTIONS
*
* [--dry-run]
* : Don't make changes, just report.
*
* [--batch=<number>]
* : Process in batches. Default 100.
*
* [--fix]
* : Apply AI-suggested fixes.
*
* ## EXAMPLES
*
* wp studenti audit-posts --dry-run
* wp studenti audit-posts --fix --batch=50
*/
public function __invoke($args, $assoc_args) {
// Implementation
}
}
PHPDoc blok = automatski --help output.
Kada koristiti custom command
- Bulk operacije — Više od 100 itema
- Data migracije — Batch processing sa recovery
- Automated tasks — Cron jobs, CI/CD
- Debugging — Inspect state, run diagnostics
- One-time scripts — Migracije, cleanups
Kada NE koristiti:
- Jednostavne operacije (koristi admin)
- User-facing features (koristi REST API)
WP-CLI custom commands su kako upravljate WordPress sajtom na skali.
38.000 postova. Klik-klik nije opcija. Batch processing sa dry-run, progress bars, i CSV export — to je profesionalni pristup.
Patterns:
- Dry-run uvek
- Batch processing
- Progress bars
- CSV export
- Rate limiting
Ove komande su razlog zašto mogu da upravljam platformom bez tima.