WordPress按meta_key和带有序列化数据的值进行自定义循环筛选

时间:2017-06-12 作者:pixelngrain

我正在尝试为自定义帖子类型运行自定义循环,并通过一些meta_keyvalue

现在,简单的元值可以很好地工作,但在这里,我对以下类型的序列化数据(嵌套)有一个挑战。

我正在使用wpalchemy 用于元框。meta_key 因为岗位类型为_event_metavalue 如下所示

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";}
我正在尝试筛选All Events 基于ac_event_operations, ac_event_positions, ac_event_employees

因此,对我来说,挑战是使用上述meta\\u键中的值过滤事件。这是我使用的查询,但当然,它没有给出任何结果。

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 );

1 个回复
SO网友:Mark Kaplun

哲学观点认为,存储序列化数据的人并不意味着要将其用于搜索。

如果需要在该数据中进行搜索,则应在save_post 钩住(或任何相关的东西)并以可用于搜索的方式将您需要的任何东西存储在不同的元中。

旁注:

在meta中搜索不可扩展LIKE 性能很差,如果要使用它,应该问问自己哪里出了问题;)

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post