Codebeispiele für Statamic Taxonomies und Terms

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();

Schreibe einen Kommentar

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