it-swarm.com.de

Beitrag nach Taxonomie und Taxonomiekind anzeigen, falls vorhanden

Ich habe eine registrierte Taxonomie namens Types, die hierarchisch ist und funktioniert. Ein Beispiel für eine Kategorie ist Hotel in Großbritannien - 1 Stern - 2 Stern - 3 Stern Hotel in Spanien - 1 Stern - 2 Stern - 3 Stern etc ..

Ich habe Probleme, den richtigen Weg zu finden, um meine Seiten anzuzeigen (benutzerdefiniertes Post-Hotel).

Ich benötige den Code, um Hotels nur dann nach Taxonomie anzuzeigen, wenn sie existieren

irgendeine Hilfe?

UPDATE CODE


 $taxonomy2 = 'accomodation-type';
 $termsacc = get_terms("accomodation-type",array('orderby' => 'slug', 'order' => 'ASC'));
   foreach ($termsacc as $termaccomodation) {
   //Here I loop through my tax acc-type
   //and check if there is any post by the country $termcountry->name (getting this value higher)
$query = new WP_Query(array('post_type' => 'accomodation', 'orderby'=> $termaccomodation->name,'order' => 'DESC','accomodation-type' =>$termaccomodation->name, 'country' =>$termcountry->name,'posts_per_page' => 48 ));


and loop....
1
salocin

In diesem Fall würde ich zwei benutzerdefinierte Taxonomien verwenden:

  • hotel-Land
  • sterne

beides nicht hierarchisch dann wäre deine abfrage so einfach wie zum beispiel hotel in uk mit 2 sternen:

$args = array(
    'post_type' => 'hotel',
    'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'hotel-country',
            'field' => 'slug',
            'terms' => array( 'uk' ),
        ),
        array(
            'taxonomy' => 'stars',
            'field' => 'slug',
            'terms' => array( '3-stars' ),
        )
    )
);
$query_posts( $args );

Aktualisieren:

Mit Ihrem vorhandenen Setup können Sie wieder 'tax_query' verwenden, aber Sie müssen jetzt die ID der untergeordneten Taxonomie eingeben, z.

UK
  3-stars - term_id = 32

dann sollten Ihre Anfrage und Argumente sein:

$args = array(
    'post_type' => 'hotel',
    'tax_query' => array(
        array(
            'taxonomy' => 'Types',
            'field' => 'id',
            'terms' => array( '32' ),
            'operator' => 'IN',
        )
    )
);
$query_posts( $args );

Update 2:

Wenn Sie sich bereits auf der britischen Seite befinden, ändern Sie Ihren Code in folgenden Code:

$taxonomy2 = 'accomodation-type';
//the current page term id, (UK,JAPAN...)
$current_term_id = get_query_var('term_id');
//array of child terms IDs. 
$termchildren = get_term_children($current_term_id,$taxonomy2); 
$args = array(
    'post_type' => 'accomodation',
    'tax_query' => array(
        array(
            'taxonomy' => 'accomodation-type',
            'field' => 'id',
            'terms' => $termchildren,
            'operator' => 'IN',
        )
    )
);
$query( $args );
//loop 

hiermit werden alle Beiträge von Unterkünften abgerufen, für die ein britisches Unterbringungskind verwendet wird.

2
Bainternet