it-swarm.com.de

fragen Sie Beiträge und benutzerdefinierten Beitragstyp mit Metaschlüssel ab

Ich versuche, den benutzerdefinierten Beitragstyp ai1ec_event und die normalen WordPress-Beiträge des All-in-One-Event-Kalenders in einem Schieberegler auf meiner Startseite abzufragen. Das funktioniert ganz gut.

Jetzt möchte ich nur die Beiträge mit dem benutzerdefinierten Feldwert "teaser" abfragen, aber das gibt nur normale Beiträge zurück, nicht die Ereignisse.

<?php
query_posts( array(
'post_type'=>array('post','ai1ec_event'),   
'posts_per_page' => 50,
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

Auch wenn ich die Posttyp-Abfrage weglasse:

<?php
query_posts( array(
'meta_query' => array(
    array(
        'key' => 'teaser',
        'value' => 'on'        
    )
)
);
?>

es werden nur Posts zurückgegeben, keine Ereignisse.

1

Ich fürchte, WP_Query kann (Posts mit benutzerdefiniertem Feld) oder (ailec_even) nicht abrufen. Sie müssen zuerst die erste und dann die zweite Abfrage durchführen und diese Arrays zusammenführen. Verwenden Sie WP_Query anstelle von query_posts.

Ich habe es gerade in meiner lokalen Installation ausprobiert und dieser Code aus index.php von Twentytwelve Works (bringt Post mit dem Titel "Hello Post" und ai1ec_event mit dem Titel "Event" - beide mit dem benutzerdefinierten Feld "Teaser" mit dem Wert "on").

$events_query = new WP_Query( array('post_type' => array('ai1ec_event', 'post'), 'meta_query' => array( array( 'key' => 'teaser', 'value' => 'on' ) )) );
while ( $events_query->have_posts() ) :
    $events_query->the_post();
    echo get_the_title() . '<br/>';
endwhile;

Ich muss sagen, dass beide (Post-End-Ereignis) vom Administrator erstellt wurden. Ich habe den Code überprüft und es gibt einen umfangreichen Teil mit benutzerdefinierten Funktionen.

2
david.binda