WP_Query după ID categorie și tip de postare personalizat

20 nov. 2014, 02:17:12
Vizualizări: 120K
Voturi: 13

Am nevoie să interoghez toate postările care aparțin unei categorii date (implicită, nu personalizată) și unui tip de postare personalizat. Atât de simplu. Faptul că nu funcționează mi se pare ridicol. Doar dacă nu-mi scapă ceva?

Iată ce am încercat:

$args = array(
    'posts_per_page' => 50, 
    //'taxonomy' => 'category',      // comentat taxonomia
    'post_type' => 'my_custom_type',
    'category__in' => array($cat_id),
);
$wp_query = new WP_Query( $args );

apoi

$args = array(
    'posts_per_page' => 50,    
    'post_type' => 'my_custom_type',
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field'    => 'id',
            'terms'    => $cat_id,
        ),
    ),
);
$wp_query = new WP_Query( $args );

și bineînțeles

$args = array(
    'posts_per_page' => 50, 
    'post_type' => 'my_custom_type',
    'category' => $cat_id,
);
$wp_query = new WP_Query( $args );

de asemenea, câteva combinații de adăugare/redenumire/eliminare a cheilor din $args.

Obținerea tuturor postărilor după tipul de postare și apoi parcurgerea lor și filtrarea după categorie nu este o opțiune eficientă, cred.

Vă rog să mă ajutați.

6
Comentarii

prima ta întrebare are o greșeală de scriere. Presupun că ai depanarea activată și nu vezi nicio eroare? unde setezi $cat_id? poți folosi var_dump pe interogarea ta după aceea și să te uiți la SQL-ul generat, ar trebui să dezvăluie problema. de asemenea, probabil nu ar trebui să suprascrii $wp_query.

Milo Milo
20 nov. 2014 02:39:28

@Milo mulțumesc, ok, $cat_id este de fapt o cheie de array (de aici a venit ghilimeaua simplă), tocmai am editat-o să fie o variabilă simplă ca această întrebare să arate mai puțin încâlcită. Mulțumesc pentru observație. În ceea ce privește ne-suprascrierea $wp_query - voi ține cont, mulțumesc

ᴍᴇʜᴏᴠ ᴍᴇʜᴏᴠ
20 nov. 2014 02:52:33

Încă par să fie erori de sintaxă acolo Jamaica. Lipsa unei virgule în array-ul tău ar trebui să genereze o eroare de parsare PHP. Poți posta codul actual pe care îl folosești fără editări?

jdm2112 jdm2112
20 nov. 2014 04:32:12

@jdm2112 Rușine pe mine, era vorba de virgulă. Asta explică de ce nu primeam nimic când încercam să decomentez cheile legate de categorie. Aș fi cerut să postezi sugestia ca răspuns ca să o pot accepta și upvota, dar nu sunt sigur dacă va fi utilă pentru comunitate. Am upvotat în schimb alte răspunsuri ale tale. Voi șterge această întrebare puțin mai târziu. Mulțumesc

ᴍᴇʜᴏᴠ ᴍᴇʜᴏᴠ
20 nov. 2014 15:50:31

Mă bucur că s-a rezolvat pentru tine.

jdm2112 jdm2112
20 nov. 2014 18:29:47
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 3
1
15

încearcă asta, funcționează pentru mine.

    $args=array(
    'posts_per_page' => 50, 
    'post_type' => 'my_custom_type'
    'cat' => $cat_id,
);
$wp_query = new WP_Query( $args );

Parametrii Categoriei

cat (int): folosește ID-ul categoriei.
category_name (string): folosește slug-ul categoriei (NU numele).
category__and (array): folosește ID-ul categoriei.
category__in (array): folosește ID-ul categoriei.
category__not_in (array): folosește ID-ul categoriei.
12 sept. 2016 13:25:59
Comentarii

Salut @kunal-gauswami, bun venit pe site și mulțumesc pentru răspunsul tău. Din păcate, nu mai am codul așa că nu pot încerca sugestia ta, dar dacă cineva confirmă că a funcționat, voi accepta cu plăcere răspunsul. Îți ofer totuși un vot pozitiv.

ᴍᴇʜᴏᴠ ᴍᴇʜᴏᴠ
16 sept. 2016 11:23:48
1

acest lucru a funcționat pentru mine.

$args=array(
'posts_per_page' => 50,    
'post_type' => 'my_custom_type'
'tax_query' => array(
    array(
        'taxonomy' => 'category', //verifică dublu numele taxonomiei în baza ta de date
        'field'    => 'id',
        'terms'    => $cat_id,
    ),
   ),
 );
$wp_query = new WP_Query( $args );
4 nov. 2019 14:10:00
Comentarii

Acest răspuns este corect dacă faci o interogare pentru o taxonomie personalizată legată de tipul personalizat de postare

Low Low
22 ian. 2020 11:26:29
0

Obține articole după ID-ul categoriei

$categories = get_categories();
$loop = new WP_Query([
    'posts_per_page' => 6,
    'post_type' => 'post',
    'tax_query' => [
        [
            'taxonomy' => 'category',
            'field' => 'id',
            'terms' => $categories[0]->term_id
        ],
    ],
]);
2 feb. 2024 15:53:53