WordPress benutzerdefinierte Loop-Filter von Meta-Schlüssel und Wert mit Daten serialisieren

Ich versuche, benutzerdefinierte Schleife für benutzerdefinierten meta_key mit Filterung durch einige meta_key und value meta_key

Jetzt funktioniert einfacher Meta-Wert, aber hier habe ich eine Herausforderung mit der unten genannten Art von serialisierten Daten (verschachtelt).

Ich benutze wpalchemy für Meta-Box. meta_key für den Post-Typ ist _event_meta und value ist wie folgt

 a:9:{s:19:"ac_event_operations";a:1:{i:0;s:8:"Training";}s:18:"ac_event_positions";a:1:{i:0;s:10:"Supervisor";}s:18:"ac_event_employees";a:1:{i:0;s:2:"15";}s:13:"ac_event_date";s:10:"2017-06-15";s:19:"ac_event_start_time";s:5:"06:30";s:17:"ac_event_end_time";s:5:"07:00";s:14:"ac_event_place";s:6:"Office";s:18:"ac_event_organizer";s:4:"Jack";s:16:"ac_event_contact";s:4:"Rose";} 

Ich versuche, All Events basierend auf ac_event_operations , ac_event_positions , ac_event_employees

Für mich besteht die Herausforderung darin, Ereignisse mit dem Wert von oberhalb von meta_keys zu filtern. Hier ist die Abfrage, die ich verwendet habe, aber natürlich gibt es kein Ergebnis.

 global $event_mb; $meta = get_post_meta( get_the_ID(), $event_mb->get_the_id(), TRUE ); $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $args = [ 'post_type' => 'event', 'posts_per_page' => get_option( 'posts_per_page' ), 'paged' => $paged, 'meta_query' => [ 'meta_key' => '_event_meta', 'value' => '%ac_event_employees%', 'compare' => 'LIKE' ], ]; $temp = $wp_query; $wp_query = NULL; $wp_query = new WP_Query( $args ); 

Solutions Collecting From Web of "WordPress benutzerdefinierte Loop-Filter von Meta-Schlüssel und Wert mit Daten serialisieren"

Philosophische Meinung, Menschen, die serialisierte Daten speichern, bedeutet nicht, dass sie in Suchanfragen verwendet werden.

Wenn Sie in diesen Daten suchen müssen, sollten Sie den save_post Hook (oder was auch immer relevant ist) save_post und alles, was Sie benötigen, in einer anderen Meta-Form speichern, die für die Suche verwendet werden kann.

Randnotizen:

  1. Die Suche in Meta ist nicht skalierbar
  2. LIKE haben schreckliche performance, wenn Sie in den Punkt der Verwendung kommen, sollten Sie sich fragen, wo Sie falsch gelaufen sind;)