obține url / link-ul arhivei de taxonomii
Am creat tipuri de postări personalizate și taxonomii personalizate pentru acestea.
Exemplu: actors
(taxonomie) pentru movies
(tip de postare).
Acum vreau să afișez în widget-ul meu câțiva termeni și un link more
pentru arhiva termenilor actors
.
Cum pot obține link-ul / url-ul arhivei taxonomiei?

Folosește get_term_link
De exemplu, pentru a afișa o listă de termeni "actors" cu linkuri către arhive:
$terms = get_terms('actors');
echo '<ul>';
foreach ($terms as $term) {
echo '<li><a href="'.get_term_link($term).'">'.$term->name.'</a></li>';
}
echo '</ul>';
Totuși!
Dacă ceea ce vrei de fapt este echivalentul unei arhive pentru tipul personalizat de postare, care listează toate postările de acel tip, dar pentru termenii de taxonomie, adică o pagină care acționează ca o arhivă listând diferiții termeni de taxonomie disponibili, atunci nu ai noroc. În WordPress nu există arhive pentru termenii de taxonomie, ci doar pentru postările atribuite unui anumit termen.
Pentru a crea o pagină care listează termenii de taxonomie, poți folosi un cod similar cu cel de mai sus. Apoi pune-l într-un template de pagină și folosește acea pagină ca arhivă pentru termenii de taxonomie.
Motivul este că problema stă în bucla de postări, aproape fiecare template de pagină este destinat să aibă una, iar dacă te uiți la ierarhia de template-uri, dacă template-urile necesare nu sunt găsite, totul revine la index.php, iar index.php are o buclă de postări care afișează postări, nu o buclă de termeni. Acest lucru și multiplele modalități și idei despre cum ar trebui listați termenii înseamnă că nu există un consens. Dar arhivele pe date? Ar trebui să existe o arhivă care listează luni și ani? Cronologii? Panouri, plăci, nori etc.

Sfatul pe care l-ai dat a fost exact ceea ce căutam. Abordarea mea a fost să folosesc un șablon de pagină, dar pare a fi o metodă foarte personalizată. Dar dacă nu există posibilități pentru o arhivă de taxonomie, va trebui să o implementez așa cum ai sugerat. Mulțumesc.

Nu există. Problema constă în bucla de articole, aproape fiecare șablon de pagină este conceput să aibă una, iar dacă te uiți la ierarhie, dacă șabloanele necesare nu sunt găsite, totul revine la index.php, iar index.php are o buclă de articole care afișează postări, nu o buclă de termeni.

Nu există o modalitate simplă de a obține acest lucru prin căutare. Și toți cei care răspund pretind că dorești să faci un link către un TERM din TAXONOMIE... În timp ce tu în realitate cauți să obții un link către arhiva TAXONOMIEI... Pentru care nu am găsit absolut nimic.
Pe scurt, la fel ca mulți alții, dorești o metodă precum get_taxonomy_archive_link
.
Totuși, din diverse motive, aceasta pur și simplu nu există. Consider acest lucru un EȘEC MAJOR din partea WordPress.
Nu există un răspuns la întrebarea ta. Cel puțin nu unul care funcționează corect în cadrul WordPress ca soluție adecvată. Desigur, poți să alipești diverse fragmente folosind get_bloginfo()
pentru nevoile tale, dar nu există niciun motiv logic în WP pentru care get_taxonomy_archive_link
să nu existe.
Cu toate acestea, eu adaug întotdeauna următoarea funcție în temele mele:
/**
* Transmiti o valoare de taxonomie acceptată de `get_taxonomy` din WP
* și vei primi înapoi URL-ul către vizualizarea de arhivă.
* @param $taxonomy string|int
* @return string
*/
function get_taxonomy_archive_link( $taxonomy ) {
$tax = get_taxonomy( $taxonomy ) ;
return get_bloginfo( 'url' ) . '/' . $tax->rewrite['slug'];
}

Se pare că ceri un link către o arhivă cu "toate articolele care au orice termen din taxonomia Actori". Toată lumea de aici a răspuns de parcă ai fi cerut linkul către o arhivă specifică unui termen, pentru că ceea ce ceri nu are sens în lumea WordPress.
Sunt surprins de răspunsul lui pixelbacon și de faptul că are 6 voturi pozitive... Acea funcție returnează un URL care nu duce nicăieri... WordPress nu are o modalitate de a interpreta acel URL și nici de a face interogarea care ar trebui să stea în spatele acelei cereri.
În baza de date, o taxonomie are relații cu termenii, iar termenii au relații cu articolele. Un singur articol nu are relații directe cu taxonomia. Singurul lucru care le conectează este faptul că un tip de postare poate suporta o taxonomie.
Să scriem în cuvinte ceea ce încerci să afișezi pe acea pagină: "Arată-mi toate articolele de tipul 'post', care au ORICE termen din taxonomia Actori."
Aceasta se traduce practic în: "arată-mi toate articolele de tipul 'post' (care suportă taxonomia Actori)".
Prin urmare, singura diferență față de o arhivă generală de tip post (afișează toate articolele dintr-un anumit tip de postare) ar fi DACĂ ai articole care nu au niciun termen Actor atribuit și VREI să le excludi.
Dacă acesta este cazul, poți crea o pagină personalizată, face o interogare generică pentru toate articolele, apoi în buclă verifici dacă articolul are vreun termen Actor cu wp_get_post_terms(get_the_ID(), 'actori')
, și eventual îl excludi dacă nu are niciunul.

Linkul de arhivă pentru orice taxonomie urmează acest model:
http://{siteurl}/{taxonomy}/{term}
De exemplu, categoria "știri" pe "myblogsite.com" ar avea următorul URL de arhivă:
http://myblogsite.com/category/știri
Deci arhiva "Harrison Ford" în taxonomia ta actors
ar fi:
http://myblogsite.com/actors/harrison-ford

deci este posibil să folosești http://{siteurl}/{taxonomy}
pentru arhiva de taxonomie?

Tot trebuie să specifici termenul din taxonomie pentru a genera arhiva.

Acest lucru nu este întotdeauna corect. Un utilizator poate schimba partea {taxonomy}
din acea structură în setările de legături permanente. De exemplu, dacă ai categoria uncategorized
, URL-ul implicit este http://{siteurl}/category/uncategorized
. Dar dacă schimbi category_base
în setările de legături permanente în topics
, de exemplu, va fi http://{siteurl}/topics/uncategorized
. Deci o formulă mai precisă pentru categorii ar fi http://{siteurl}/{get_option('category_base')}/uncategorized

folosește get_term_link() :)
EDIT:
Acesta poate fi util: linkul de arhivă pentru taxonomie: get_the_term_list(). Din codex:
Returnează un șir HTML cu termenii de taxonomie asociați unui post și taxonomia specificată. Termenii sunt legați la paginile lor respective de listare a termenilor.
deci trebuie să fie asociat unui ID de post, dar face treaba de arhivare a termenilor de taxonomie.

Când creezi o taxonomie personalizată, poți adăuga atributul rewrite
. Acest atribut poate seta un slug pentru rescrierea URL-ului taxonomiei, pe care îl poți folosi pentru linkuri:
register_taxonomy('actors', 'movies', array(
// ...
'rewrite' => array( 'slug' => 'actors' ),
// ...
));
Deci, pentru a crea un link către arhiva taxonomiei, poți folosi următorul model:
http://mysite.com/actors/nume-actor
