Taxonomies
Taxonomien in Statamic bieten die Möglichkeit, Inhalte zu kategorisieren und zu organisieren. Sie können zum Beispiel für Tags, Kategorien oder jede andere Art von gruppierbarem Inhalt verwendet werden.
Alle Taxonomies abfragen
Dieses Codebeispiel liest alle Taxonomien in Statamic aus und gibt ihre Titel aus.
use Statamic\Facades\Taxonomy;
$taxonomies = Taxonomy::all();
foreach($taxonomies as $taxonomy) {
echo $taxonomy->title . PHP_EOL;
}
Taxonomy per Handle abfragen
Dieses Codebeispiel holt eine bestimmte Taxonomie über ihren Handle (einen eindeutigen Identifikator) und druckt ihren Titel aus.
use Statamic\Facades\Taxonomy;
$taxonomy = Taxonomy::findByHandle('tags');
echo $taxonomy->title . PHP_EOL;
Alle Taxonomy-Handles abfragen
Dieses Codebeispiel ruft die Handles aller Taxonomien ab und druckt sie aus.
use Statamic\Facades\Taxonomy;
$handles = Taxonomy::handles();
foreach($handles as $handle) {
echo $handle . PHP_EOL;
}
Terms
Terms sind die einzelnen Einträge innerhalb einer Taxonomie. Sie repräsentieren die eigentlichen kategorisierbaren Daten.
Alle Terms aus allen Taxonomies abfragen
Dieses Codebeispiel liest alle Terms aus allen Taxonomien aus und gibt ihre Titel aus.
use Statamic\Facades\Term;
$terms = Term::all();
foreach($terms as $term) {
echo $term->title . PHP_EOL;
}
Alle Terms einer speziellen Taxonomy abfragen
Dieses Codebeispiel liest alle Terms aus einer spezifischen Taxonomie (in diesem Fall "tags") aus und gibt ihre Titel aus.
use Statamic\Facades\Term;
$terms = Term::query()->where('taxonomy', 'tags')->get();
foreach($terms as $term) {
echo $term->title . PHP_EOL;
}
Alle Terms einer Taxonomy abfragen, die in einer Collection genutzt werden
Dieses Codebeispiel liest alle Terms, die in einer bestimmten Sammlung (hier "posts") und einer bestimmten Taxonomie (hier "tags") verwendet werden, aus. Anschließend werden die Titel der Terms ausgegeben.
use Statamic\Facades\Term;
$terms = Term::query()->where('taxonomy', 'tags')->where('collection', 'posts')->get();
foreach($terms as $term) {
echo $term->title . PHP_EOL;
}
Alle Terms einer Taxonomy abfragen, die auch genutzt werden
Dieses Codebeispiel liest alle Terms einer bestimmten Taxonomie (hier "tags") aus, die in mindestens einem Eintrag verwendet werden.
use Statamic\Facades\Term;
$terms = Term::query()->where('taxonomy', 'tags')->where('entries_count', '>=', 1)->get();
foreach($terms as $term) {
echo $term->title . PHP_EOL;
}
Alle ungenutzten Terms einer Taxonomy abfragen
Dieses Codebeispiel liest alle Terms einer bestimmten Taxonomie (hier "tags") aus, die in keinem Eintrag verwendet werden.
use Statamic\Facades\Term;
$terms = Term::query()->where('taxonomy', 'tags')->where('entries_count', '=', 0)->get();
foreach($terms as $term) {
echo $term->title . PHP_EOL;
}
Term anlegen
Folgendes Codebeispiel frägt einen User ab und erstellt einen Taxonomy Term vom Typ "tag" in der Taxonomy "tags", der diesem User zugewiesen wird.
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();