Archivfilter verschwindet auf keine Ergebnisse?

Ich habe dieses Beispiel durchgearbeitet : http://www.advancedcustomfields.com/resources/creating-wp-archive-custom-field-filter/

Das fand ein Kollege von mir, um einen einfachen Checkbox-basierten Filter für WordPress-eigene Posts zu erstellen, der nach einem benutzerdefinierten Post-Typ filtert.

Ich habe alles eingerichtet und es scheint hier zu funktionieren – wenn Sie nach “Ort” filtern, wird der Post “Alle Orte” entfernt, wie Sie es erwarten würden.

Wenn Sie jedoch eine Option auswählen, die nicht vorhanden ist, verschwinden die Filter bei der Aktualisierung und ich kann nicht herausfinden, warum. Mein Kollege hat diesen genauen Code auf einer anderen Website verwendet, die dieses Problem nicht hat, so dass ich ratlos bin. Ich habe versucht, die Elemente in der Vorlage neu anzuordnen, falls etwas davon betroffen ist, aber nichts scheint sich zu ändern.

Der Code in meiner Archiv-Jobs.php:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nisl odio, efficitur non lorem ut, volutpat egestas tellus. Vestibulum suscipit sem mi, nec mattis tortor convallis in. Integer in blandit turpis, consectetur tincidunt dolor.

    $choice_label ): ?>
  • <input type="checkbox" value="" checked="checked" />
(function($) { $('#search-location').on('change', 'input[type="checkbox"]', function(){ // vars var $ul = $(this).closest('ul'), vals = []; $ul.find('input:checked').each(function(){ vals.push( $(this).val() ); }); vals = vals.join(","); window.location.replace('?location_choice=' + vals); console.log( vals ); }); })(jQuery);

Code von functions.php:

  add_action('pre_get_posts', 'my_pre_get_posts'); function my_pre_get_posts( $query ) { // validate if( is_admin() ) { return; } if( !$query->is_main_query() ) { return; } // get original meta query $meta_query = $query->get('meta_query'); // allow the url to alter the query // eg: http://www.website.com/events?location=melbourne // eg: http://www.website.com/events?location=sydney if( !empty($_GET['location_choice']) ) { $location_choice = explode(',', $_GET['location_choice']); //Add our meta query to the original meta queries $meta_query[] = array( 'key' => 'location_choice', 'value' => $location_choice, 'compare' => 'IN', ); } // update the meta query args $query->set('meta_query', $meta_query); // always return return; } 

Jede Hilfe würde sehr geschätzt werden!

Solutions Collecting From Web of "Archivfilter verschwindet auf keine Ergebnisse?"

Wenn es keine Posts gibt, gibt es keine post-ID, mit der get_field_object arbeiten kann. Wenn Sie die Dokumentation für diese function lesen , sehen Sie Folgendes:

$ post_id Spezifische Post-ID, in der Ihr Wert eingegeben wurde. Standardeinstellung ist die aktuelle Post-ID (nicht erforderlich). Dies können auch Optionen / Taxonomien / Benutzer / etc sein