✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Tassonomie di WordPress: termini, genitori, figli

36

La creazione di tassonomie in modo programmatico sembra essere un punto che emerge di tanto in tanto per coloro che stanno costruendo soluzioni per altri su WordPress.

Le tassonomie stesse possono anche creare un po’ di confusione; tuttavia, ho scoperto che quanto segue di solito aiuta a consolidare un po’ il concetto:

Le tassonomie gerarchiche sono analoghe alle categorie; le tassonomie non gerarchiche sono analoghe ai tag.

Tuttavia, supponiamo che tu stia creando una soluzione per qualcuno tale da dover importare informazioni come post e applicarvi una tassonomia. Inoltre, forse vuoi applicare anche una tassonomia genitore al post.

Come possiamo farlo?

Tassonomie di WordPress: registrazione, genitori, figli e altro

La situazione è più o meno questa:

Hai un post a cui verrà applicata una tassonomia. Se la tassonomia ha un genitore, vogliamo applicarlo anche al post.

Per fare ciò, avremo bisogno di quattro (forse cinque) funzioni:

  1. registro_tassonomia
  2. wp_insert_term
  3. get_term_by
  4. wp_set_object_terms

Aggiungo anche che penso sia una buona idea usare sanitize_title_with_dash se hai intenzione di usare un tipo di stringa in entrata non disinfettata per lo slug del tipo post (ma non è necessario se non lo sei, ovviamente ).

1 Registra la tassonomia

Per questo esempio, creeremo una tassonomia per un tipo di post personalizzato.

Poiché questo potrebbe essere qualsiasi cosa su cui stai lavorando, userò una variabile chiamata $postType per dimostrare il punto.

<?php

register_taxonomy(
  'acme-category',
  $postType,
  [
      'label' => 'Acme Categories',
      'rewrite' => ['slug' => 'acme-category'],
      'capabilities' => [
          'manage_terms' => 'manage_options',
          'edit_terms' => 'manage_options',
          'delete_terms' => 'manage_options',
          'assign_terms' => 'manage_options',
      ],
      'hierarchical' => true,
  ]
);

È abbastanza semplice, ma prendi nota dal riferimento del codice :

Una semplice funzione per creare o modificare un oggetto tassonomia in base ai parametri forniti. Se si modifica un oggetto tassonomia esistente, si noti che il $object_typevalore della registrazione originale verrà sovrascritto.

In genere, questo non è un problema, ma se stai lavorando su un’applicazione di grandi dimensioni o su un’applicazione preesistente, è qualcosa da tenere a mente.

2 Inserire un termine per la tassonomia

Quindi, supponi che un $customPost ti sia reso disponibile e che abbia una funzione per recuperare il suo nome, il suo titolo o qualche altra proprietà utilizzata per identificarlo (diversa dal suo ID).

Questo potrebbe essere passato in una funzione o potrebbe essere reso disponibile tramite qualsiasi uso di altre funzioni fornite da WordPress. In questo esempio utilizzerò una funzione getName () sull’oggetto $customPost .

<?php

$termInfo = wp_insert_term(
  $customPost->getName(),
  'acme-category',
  ['slug' => sanitize_title_with_dashes($customPost->getName())]
);

Nota che sto anche leggendo il risultato della funzione in una  variabile $termInfo. Lo useremo nel passaggio successivo per cercare il genitore se esiste e lo applicheremo anche al nostro oggetto post personalizzato.

3 Cerca il genitore di un termine

Qui useremo il termine che abbiamo appena creato per vedere se esiste un genitore per questo. Nota che se restituisce false, la tassonomia non esiste (o se il termine non viene trovato).

Tassonomie di WordPress: termini, genitori, figli

A tal fine, ti consigliamo di aggiungere un condizionale al tuo codice per crearlo, se necessario. Per mantenere il codice conciso, tuttavia, lo sto omettendo nel codice seguente :

<?php

$parentTermInfo = get_term_by(
  'term_taxonomy_id',
  $termInfo['term_taxonomy_id'],
  'acme-category',
  ARRAY_A
);

Si noti che memorizzo il risultato del codice sopra in una  variabile $parentTermInfo. Questo è così che possiamo passarlo alla nostra funzione finale per applicare le informazioni genitore al nostro oggetto post.

4 Applicare il termine a un post

Infine, applicheremo il termine (o termini) se è presente un oggetto padre. Ricorda che è qui che sarà necessario il condizionale. In poche parole, se non c’è un genitore, il valore $parentTermInfo[‘parent’] non sarà necessario.

Tassonomie di WordPress: termini, genitori, figli

Ma per il codice qui sotto, supponiamo di averlo.

<?php

wp_set_object_terms(
  $customPost->getId(),
  [
      $parentTermInfo['parent'],
      $termInfo['term_id'],
  ],
  'acme-category',
  true
);

Dal riferimento al codice, nota che questo creerà il termine se non esiste già; in caso contrario, utilizzerà ciò che è già definito e lo applicherà al post.

E Fatto

In generale, non è molto lavoro. Aiuta ad assicurarsi di avere una chiara comprensione di come funzionano le tassonomie e i loro termini. Inoltre, aiuta anche sapere come recuperare il genitore di un dato termine se è quello che vuoi fare (altrimenti, il terzo passaggio non è necessario).

Ma si spera che i collegamenti e il codice sopra ti forniscano tutto ciò di cui hai bisogno per creare una tassonomia e applicarla a un post (oltre a un termine padre, se necessario).

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More