Hilfe mit if-statement innerhalb der while-Schleife

Ich habe das folgende Code-Schnipsel, im Grunde bekomme ich den gesetzten Wert von id aus der Metabox, bekomme die aktuelle ID basierend auf der Schleife, versuche und match, wenn htey übereinstimmen möchte ich die Werte aus der übereinstimmenden ID ziehen, kann ich derzeit bekomme nur die ID, aber ich möchte auch die zugehörigen benutzerdefinierten Feldwerte dieses Beitrags erhalten.

Ich weiß auch nicht, warum, auch wenn es mit dem Wert übereinstimmt, wird es immer noch die else-statement wiedergeben, weil es in den While-Loops ist, aber wie bekomme ich das?

ID,'ec_agents',true ); $args = array( 'post_type' => 'agent_type'); $the_query = new WP_Query( $args ); $id = $post->ID; while ( $the_query->have_posts() ) : $the_query->the_post(); if ($id == $list_agent) { echo "success"; the_title(); //Both Meta values not showing echo get_post_meta( $post->ID,'_agent_phone',true ); echo get_post_meta( $post->ID,'_agent_email',true ); } else { echo "better luck next time"; } endwhile; wp_reset_postdata(); ?> 

Solutions Collecting From Web of "Hilfe mit if-statement innerhalb der while-Schleife"

Sie setzen $id = $post->ID; außerhalb der Schleife für Beiträge vom agent_type wird es niemals übereinstimmen.

Wie auch immer, wenn Sie nichts mit den agent_type des agent_type , die nicht übereinstimmen, agent_type Sie einfach nach dem gewünschten Post mit der ID:

 $list_agent = get_post_meta( $post->ID,'ec_agents',true ); $args = array( 'post_type' => 'agent_type', 'p' => $list_agent ); $agent_query = new WP_Query( $args ); while ( $agent_query->have_posts() ) : $agent_query->the_post(); echo get_post_meta( get_the_ID(),'_agent_phone',true ); echo get_post_meta( get_the_ID(),'_agent_email',true ); endwhile; wp_reset_query();