fix(seo): Meta-Description-Fallback über object-Scope auflösen #72

Merged
Phil merged 1 commit from fix/seo-description-object-scope into main 2026-09-06 21:44:34 +00:00
Owner

Nachtrag zu #58. Der dort eingebaute Description-Fallback griff nur zufällig.

Refs #58

Warum

Der Fallback adressierte die Felder nackt (articleTldr, articleLead, websiteContent). In Crafts Object-Templates funktioniert das aber nicht verlässlich:

  • View.php:725-731 macht nur Model-Attribute als Top-Level-Variablen verfügbar ($object->attributes()) — bei einem Entry sind das die Tabellenspalten, nicht die Custom-Felder.
  • Custom-Felder kommen darüber hinaus nur rein, wenn sie zufällig in extraFields() auftauchen (Zeile 733-745).
  • $variables['object'] dagegen wird immer gesetzt (Zeile 747).

Über object.articleTldr ist der Zugriff damit garantiert, ohne dieses Präfix hängt er davon ab, was Craft gerade exponiert. Genau deshalb wirkte der Fallback teils, teils nicht.

firstBlock bleibt bewusst unpräfixiert — das ist eine lokale Twig-Variable aus {% set %}, kein Element-Zugriff.

Belege (lokal, nach project-config/apply und Container-Neustart)

/                                    Ich automatisiere Ablaeufe im Mittelstand...
/en/                                 I automate workflows for mid-sized companies...
/blog                                Gedanken zu Agentic Engineering...
/en/blog                             Thoughts on agentic engineering...
/blog/anti-slop-4-whac-a-mole        Vier Varianten, dieselben 36 Aufgaben...
/en/blog/anti-slop-4-my-model-...    Four arms, the same 36 tasks...
/impressum                           Philipp Luetje Am Kiebitzgraben 9...
/blog/category/compound-engineering  kein Tag (korrekt - Kategorien haben kein Textfeld)

Kein leeres content="" auf einer der Seiten. Keine Fehler im Craft-Log.

Alle drei Description-Vorlagen (beide Sprachen plus Standard) sind umgestellt.

🤖 Generated with Claude Code

https://claude.ai/code/session_017w4iMK5VNobPwXUWXmLKKh

Nachtrag zu #58. Der dort eingebaute Description-Fallback griff nur zufällig. `Refs #58` ## Warum Der Fallback adressierte die Felder nackt (`articleTldr`, `articleLead`, `websiteContent`). In Crafts Object-Templates funktioniert das aber nicht verlässlich: - `View.php:725-731` macht nur **Model-Attribute** als Top-Level-Variablen verfügbar (`$object->attributes()`) — bei einem Entry sind das die Tabellenspalten, nicht die Custom-Felder. - Custom-Felder kommen darüber hinaus nur rein, wenn sie zufällig in `extraFields()` auftauchen (Zeile 733-745). - `$variables['object']` dagegen wird **immer** gesetzt (Zeile 747). Über `object.articleTldr` ist der Zugriff damit garantiert, ohne dieses Präfix hängt er davon ab, was Craft gerade exponiert. Genau deshalb wirkte der Fallback teils, teils nicht. `firstBlock` bleibt bewusst unpräfixiert — das ist eine lokale Twig-Variable aus `{% set %}`, kein Element-Zugriff. ## Belege (lokal, nach `project-config/apply` und Container-Neustart) ``` / Ich automatisiere Ablaeufe im Mittelstand... /en/ I automate workflows for mid-sized companies... /blog Gedanken zu Agentic Engineering... /en/blog Thoughts on agentic engineering... /blog/anti-slop-4-whac-a-mole Vier Varianten, dieselben 36 Aufgaben... /en/blog/anti-slop-4-my-model-... Four arms, the same 36 tasks... /impressum Philipp Luetje Am Kiebitzgraben 9... /blog/category/compound-engineering kein Tag (korrekt - Kategorien haben kein Textfeld) Kein leeres content="" auf einer der Seiten. Keine Fehler im Craft-Log. ``` Alle drei Description-Vorlagen (beide Sprachen plus Standard) sind umgestellt. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017w4iMK5VNobPwXUWXmLKKh
Craft stellt in Object-Templates nur Model-Attribute als nackte Twig-
Variablen bereit (View.php:725-731 iteriert `$object->attributes()`).
Custom-Felder wie articleTldr landen dort nur, wenn sie zufällig in
extraFields() auftauchen — `$variables['object']` dagegen ist immer
gesetzt (View.php:747). Der Fallback greift damit erst zuverlässig,
seit er die Felder über `object.` adressiert.

firstBlock bleibt unpräfixiert: das ist eine lokale Twig-Variable aus
`{% set %}`, kein Element-Zugriff.

Refs #58

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017w4iMK5VNobPwXUWXmLKKh
Phil merged commit 65b8cd2d2d into main 2026-09-06 21:44:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Phil/philflow.io!72
No description provided.