Meta-Box-Loop-Problem mit einem Suchfilter

Ich habe einen benutzerdefinierten Post-Typ erstellt und dazu benutzerdefinierte Taxonomien sowie benutzerdefinierte Metaboxen hinzugefügt und eine erweiterte Suche mit mehreren Optionen durchgeführt. Aber ich habe ein Problem wegen der Dauerschleife (Dauer: ist ein benutzerdefiniertes Meta-Feld), wenn im Suchfeld aktiviert, erscheint diese Nachricht für mich:

WordPress database error: [Not unique table/alias: 'wp_postmeta'] SELECT DISTINCT wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id WHERE 1=1 AND ( wp_postmeta.meta_key = '_duration_c_a' ) AND wp_posts.post_type = 'courses' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC Notice: Undefined variable: durations in C:\xampp\htdocs\wp1\wp-content\plugins\academy4-sections\academy4-sections.php on line 543 

Hier habe ich: Registrieren Sie benutzerdefinierte Abfrage vars

 is_main_query() ){ return; } // edit the query only when post type is 'courses' // if it isn't, return if ( !is_post_type_archive( 'courses' ) ){ return; } $meta_query = array(); // get query var values // defaults to empty string if( !empty( get_query_var( 'duration' ) ) ){ $meta_query[] = array( 'key' => '_duration_c_a', 'value' => get_query_var( 'duration' ), 'compare' => 'LIKE' ); } if( !empty( get_query_var( 'courseid' ) ) ){ $meta_query[] = array( 'key' => '_course_id_c_a', 'value' => get_query_var( 'courseid' ), 'compare' => 'LIKE' ); } if( count( $meta_query ) > 1 ){ $meta_query['relation'] = 'AND'; } if( count( $meta_query ) > 0 ){ $query->set( 'meta_query', $meta_query ); } } add_action( 'pre_get_posts', 'mhmd_pre_get_posts', 1 ); 

und hier erstelle ich eine Meta-Box-Schleife, um sie in der Suche auszuwählen

  /** * Build search form markup */ function mhmd_search_form( $args ){ // The Query // meta_query expects nested arrays, even if you only have one query // to add the category param $sm_query = new WP_Query( array( 'post_type' => 'courses', 'posts_per_page' => '-1', 'meta_query' => array( array( 'key' => '_duration_c_a', 'operator' => 'NOT EXISTS', ) ) ) ); // The Loop if ( $sm_query->have_posts() ) { $durations = array(); while ( $sm_query->have_posts() ) { $sm_query->the_post(); $duration = get_post_meta( get_the_ID(), '_duration_c_a', true ); // populate an array of all occurrences (non duplicated) if( !in_array( $duration, $durations ) ){ $durations[] = $duration; } } } /* Restore original Post Data */ wp_reset_postdata(); if( count($durations) == 0){ return; } asort($durations); $select_duration = ''; $select_duration .= '' . __( 'Select duration', 'smashing_plugin' ) . ''; foreach ($durations as $duration ) { $select_duration .= '' . $duration . ''; } $select_duration .= '' . "\n"; reset($durations); 

Solutions Collecting From Web of "Meta-Box-Loop-Problem mit einem Suchfilter"