从多个表创建搜索数组

时间:2012-06-09 作者:Ty Morton

我正在与一个客户的WordPress网站合作,该网站有来自多个国家的用户提交(通过TDO迷你表单),他们希望能够按地区搜索帖子–欧洲、非洲、中美洲等。

用户的原产国已有一个自定义字段。我还有一个单独的表,将国家映射到区域。我想做的是使用户可以从地图中选择欧洲,并让WP返回映射为EU的国家的所有帖子。

实现这一目标的最佳方式是什么?我不仅不想重新发明轮子,而且WP可能对它的搜索功能非常挑剔。

我的第一个想法是搜索Regions表,将所有国家作为一个数组返回,然后使用该数组执行WP搜索,但我找不到如何在不创建and搜索的情况下执行此操作,and搜索什么都不返回。

谢谢你的帮助。

1 个回复
最合适的回答,由SO网友:Milo 整理而成

你的想法是对的。如果您获得一个地区内的国家/地区ID数组,则可以将该数组传递给元查询进行比较:

$country_ids = array(1,2,3); // this would be the result from fetching countries associated with a region.
$args = array(
    \'posts_per_page\' => -1,
    \'meta_query\' => array(
        array(
            \'key\' => \'country\',
            \'value\' => $country_ids,
            \'compare\' => \'IN\'
        )
    )
);
$query = new WP_Query( $args );
编辑-这是假设ID已存储,如果要将国家名称存储为值,则应使用名称数组进行查询。

结束

相关推荐

Get_Search_Form()似乎没有考虑参数

我正在手动创建菜单,并尝试包含搜索表单。这摘自Wordpress文档“构建简单菜单列表”,网址为http://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items.我添加了一个额外的<;li>;元素,并添加了搜索表单。 // Get the nav menu based on $menu_name (same as \'theme_location\' or \'menu\' arg to wp_nav_me