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.
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;
}
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;
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 sind die einzelnen Einträge innerhalb einer Taxonomie. Sie repräsentieren die eigentlichen kategorisierbaren Daten.
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;
}
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;
}
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;
}
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;
}
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;
}
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();