J'essaie d'exécuter une boucle personnalisée pour un type de message personnalisé avec un filtrage par meta_key
et value
Maintenant, la simple méta-valeur fonctionne bien, mais j’ai un problème avec le type de données sérialisées ci-dessous (imbriqué).
J'utilise wpalchemy pour la méta-boîte. meta_key
pour le type de message est _event_meta
et value
est comme ci-dessous
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";}
J'essaie de filtrer All Events
en fonction de ac_event_operations
, ac_event_positions
, ac_event_employees
Donc, pour moi, le défi consiste à filtrer les événements avec la valeur méta_keys ci-dessus. Voici la requête que j'ai utilisée mais bien sûr, cela ne donne aucun résultat.
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 );
selon l’opinion philosophique, les personnes qui stockent des données sérialisées ne les utilisent pas pour des recherches.
Si vous devez rechercher dans ces données, vous devez accrocher le crochet save_post
(ou ce qui est pertinent) et stocker tout ce dont vous avez besoin dans une autre méta de manière que vous puissiez utiliser dans la recherche.
Notes de côté:
LIKE
a une performance horrible, si vous voulez l'utiliser, vous devriez vous demander où vous êtes-vous trompé;)