it-swarm-eu.dev

Získání křižovatky dvou vlastních pojmů taxonomie pro vlastní typ příspěvku?

( Poznámka moderátorů : Původně byla pojmenována "Jak získat_posty vlastního typu příspěvku, který je ve dvou vlastních taxonomiích?" )

Mám vlastní typ příspěvku, který má dvě taxonomie, které jsou oddělené, jeden nazvaný "Typ projektu" a jeden nazvaný "Balíček" . Musím získat seznam projektů, které jsou "Typ projektu" A a "Package" A. Zkoušel jsem použít následující kód:

$args = array(
  'post_type' => 'portfolio', 
  'numberposts' => -1, 
  'project_type' => 'A', 
  'package' => 'A'
); 
$my_posts = get_posts($args);  

Ale to dostane všechny příspěvky, které jsouBUĎv Typ projektu A OR Balíček A.

Existuje nějaký způsob, jak říct v get_posts(), že chci vrátit pouze ty příspěvky, které jsou vOBOUtaxonomií?

6
Shaun

Jak v1.3, Dotaz více taxonomií plugin funguje skvěle s WP_Query. Vaše původní args funguje jako je.

$args = array(
'post_type' => 'portfolio',
'numberposts' => -1,
'project_type' => 'A',
'package' => 'A'
);

Poté proveďte nový dotaz a zkontrolujte jej:

$foo = new WP_Query($args);
var_dump($foo->posts);

Testoval jsem to na svém vlastním nastavení taxonomie a vrátil příspěvky, které odpovídaly oba termíny v dotazu.

Dalším praktickým způsobem, jak zachytit více taxonomických výrazů pomocí QMT, je vytváření jednoduchých dotazů URL:

site.com/?post_type=portfolio&package=foo&project=bar

Použil jsem tuto metodu s funkcí add_query_args() k vytvoření odkazů na stránce, která modifikuje aktuální dotaz a vylepšuje ho přidáním dalších termínů a taxonomií. Syntaxe také funguje skvěle s vyhledávacím vstupem, protože více slov ve vstupním poli je umístěno jako foo + bar, což skvěle funguje s QMT:

site.com/?post_type=portfolio&project=alpha&colors=red+blue+green

Který vrátí pouze příspěvky, které splňují všechny tato kritéria - Typ: Portfolio/Projekt: Alfa/Barvy: červená + modrá + zelená

4
somatic

Staré Q, ale zřejmě přichází tak, že zde je současný stav - dotazy na taxonomii se v 3.1 a dále od té doby výrazně zlepšily.

V dnešní době se bude snadno řešit pomocí daňového dotazu pomocí vztahu AND, například z Kodexu:

'tax_query' => array(
    'relation' => 'AND',
    array(
        'taxonomy' => 'movie_genre',
        'field'    => 'slug',
        'terms'    => array( 'action', 'comedy' ),
    ),
    array(
        'taxonomy' => 'actor',
        'field'    => 'term_id',
        'terms'    => array( 103, 115, 206 ),
        'operator' => 'NOT IN',
    ),
),

Viz Parametry taxonomie pro úplnou dokumentaci.


Obvyklé prohlášení o vyloučení odpovědnosti - zatím jsem si nepřečetla vlastní věci.

Myslím, že složité dotazy na taxonomii nejsou implementovány v jádru WP (dosud). Zkuste Dotaz více taxonomií plugin.

1
Rarst