searching for posts, with user meta parameters
Question
I try to show posts for all registered users. The users have some user_meta fields, that i can display suggested posts for them.
I have exact the same function in use on the profile page of a user, and its working there. Here i need to loop through all users, but i dont get any posts returned. When i comment out the whole tax_query argument, the posts are shown. Does anyone have a clue, why this isnt working?
function leweb_send_suggested_events() {
$users = get_users( [ 'role__in' => [ 'um_musiker_blech', 'um_musiker_bronze', 'um_musiker_silber', 'um_musiker_gold' ] ] );
// Array of WP_User objects.
foreach ( $users as $user ) {
// Benötigte Userdaten
$user_id = $user->id;
$current_artist = get_user_meta( $user_id, 'um_musikkategorie', true);
$region = get_user_meta( $user_id, 'um_gebiete');
// DEBUG
echo 'ID: ' . $user_id . ' ARTIST: '. $current_artist . '<br />';
// Query
global $wp_query;
// Arguments
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'leweb_ct_musiker',
'field' => 'slug',
'terms' => $current_artist,
),
array(
'taxonomy' => 'leweb_ct_standort',
'field' => 'name',
'terms' => $region[0],
),
),
);
$query = new WP_Query( $args );
if( $query->have_posts() ) {
// DEBUG
echo '<pre>' . print_r( $query ) . '</pre>';
echo '<div class="table-2 suggested-events-widget"><table><tbody>';
while( $query->have_posts() ) {
$query->the_post();
// Post Meta
$event = get_post_meta( get_the_ID(), 'event', true );
$artist = get_post_meta( get_the_ID(), 'event_musiker', true );
$event_standort = get_post_meta( get_the_ID(), 'event_standort', true );
$event_plz = get_post_meta( get_the_ID(), 'event_plz', true );
$event_stadt = get_post_meta( get_the_ID(), 'event_stadt', true );
$event_timestamp = get_post_meta( get_the_ID(), 'event_date_timestamp', true );
$event_link = get_post_permalink( get_the_ID() );
// Zeit Formatierung
$day = date_i18n( "d", $event_timestamp );
$month = date_i18n( "M", $event_timestamp );
// Tabelle
echo '<tr>';
echo '<td class="event-date"><a href="' . $event_link . '"><span class="month">' . $month . '</span><span class="day">' . $day . '</span></a></td>';
echo '<td class="event-meta"><a href="' . $event_link . '"><span class="event">' . $event . '</span><span class="place">' . 'In ' . $event_standort . ', ' . $event_plz . ' ' . $event_stadt . '</span></a></td>';
echo '</tr>';
}
echo '</tbody></table></div>';
}
wp_reset_postdata();
}
}
leweb_send_suggested_events();
0
user-meta, user-roles, wp-query
4 years
2019-11-05T17:13:26-05:00
2019-11-05T17:13:26-05:00 0 Answers
63 views
0
Leave an answer