Codebeispiele für Statamic Taxonomies und Terms

Taxonomien und Terms in Statamic bieten eine leistungsstarke Möglichkeit, deine Inhalte zu strukturieren und zu organisieren. Sie sind hervorragend geeignet, um Tags, Kategorien oder andere gruppierbare Inhalte zu verwalten.

Mit Taxonomien kannst du deine Inhalte auf oberster Ebene klassifizieren. Um alle Taxonomien in Statamic abzurufen und deren Titel auszugeben, kannst du folgendes Beispiel verwenden:

use Statamic\Facades\Taxonomy;

$taxonomies = Taxonomy::all();

foreach ($taxonomies as $taxonomy) {
    echo $taxonomy->title . PHP_EOL;
}

Wenn du eine bestimmte Taxonomie durch ihren Handle identifizieren möchtest, ist dies mit einem simplen Befehl möglich. Hier ein Beispiel, wie du den Titel der Taxonomie „tags“ abfragen kannst:

use Statamic\Facades\Taxonomy;

$taxonomy = Taxonomy::findByHandle('tags');
echo $taxonomy->title . PHP_EOL;

Um alle Handles deiner Taxonomien schnell abzurufen, kannst du auf dieses Code-Snippet zurückgreifen:

use Statamic\Facades\Taxonomy;

$handles = Taxonomy::handles();

foreach ($handles as $handle) {
    echo $handle . PHP_EOL;
}

Neben Taxonomien selbst sind Terms die eigentlichen Einträge innerhalb dieser. Sie bilden die spezifischen kategorisierbaren Einheiten. Mit Statamic kannst du einfach alle Terms aus allen Taxonomien abfragen:

use Statamic\Facades\Term;

$terms = Term::all();

foreach ($terms as $term) {
    echo $term->title . PHP_EOL;
}

Interessierst du dich für alle Terms innerhalb einer speziellen Taxonomie, zum Beispiel „tags“, kannst du das mit folgender Abfrage erreichen:

use Statamic\Facades\Term;

$terms = Term::query()->where('taxonomy', 'tags')->get();

foreach ($terms as $term) {
    echo $term->title . PHP_EOL;
}

Um zu prüfen, welche Terms innerhalb einer bestimmten Collection und Taxonomie benutzt werden, kannst du diesen Code verwenden:

use Statamic\Facades\Term;

$terms = Term::query()->where('taxonomy', 'tags')->where('collection', 'posts')->get();

foreach ($terms as $term) {
    echo $term->title . PHP_EOL;
}

Es kann auch nützlich sein, nur die Terms einer Taxonomie zu sehen, die aktiv in Einträgen genutzt werden. Hier ein Beispiel, wie man das in der „tags“-Taxonomie macht:

use Statamic\Facades\Term;

$terms = Term::query()->where('taxonomy', 'tags')->where('entries_count', '>=', 1)->get();

foreach ($terms as $term) {
    echo $term->title . PHP_EOL;
}

Wenn du auf der anderen Seite alle ungenutzten Terms sehen möchtest, bietet Statamic auch dafür eine Lösung:

use Statamic\Facades\Term;

$terms = Term::query()->where('taxonomy', 'tags')->where('entries_count', '=', 0)->get();

foreach ($terms as $term) {
    echo $term->title . PHP_EOL;
}

Und schließlich, wenn du einen neuen Term erstellen und einem User zuweisen möchtest, kannst du auf diesen Code zurückgreifen. Hierbei wird ein neuer Taxonomy Term vom Typ „tag“ innerhalb der „tags“ Taxonomie hinzugefügt:

use Statamic\Facades\Term;
use Statamic\Facades\User;

$user = User::query()->where('name', 'Sebastian Widmann')->first();
$user_id = $user->id;

$term_data = [
    'title' => 'My Term',
    'author' => $user_id,
    'updated_by' => $user_id,
    'updated_at' => time(),
    'blueprint' => 'tag',
];

$term = Term::make()->taxonomy('tags')->slug('my-term');
$term->dataForLocale('default', $term_data);
$term->save();

Diese Codebeispiele zeigen die Flexibilität und Stärke, mit der du Taxonomien und Terms in Statamic verwalten und anpassen kannst. Ob du nun Kategorien strukturieren oder spezifische Einträge befragen möchtest, Statamic bietet dir die nötigen Werkzeuge, um effizient und effektiv zu arbeiten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert