按地点标题对事件进行排序-按相关帖子ID对帖子进行排序

时间:2016-05-24 作者:dwlorimer

在wordpress中,我使用事件日历插件来主持事件。这包括两种帖子类型:事件和场馆。

在索引页上,我想列出所有活动,但按各自地点的字母顺序排列。

现在,我抓取所有事件,并按场馆ID对它们进行排序(因为它存储在元表中,很容易访问:

<?php global $query_string;
$args = array (
        \'post_type\' => \'tribe_events\',
        \'posts_per_page\' => -1,
        \'meta_key\' => \'_EventVenueID\',
        \'orderby\' => \'meta_value\',
        \'order\' => \'ASC\',
    );
$posts = query_posts($args);
?>
这是可行的,但很明显,它不是按字母顺序排列的。

是否有办法查询DB以按场馆名称排序活动?活动和场馆都是post类型。类似这样:

<?php global $query_string;
$args = array (
        \'post_type\' => \'tribe_events\',
        \'posts_per_page\' => -1,
        \'meta_key\' => \'_EventVenueID\',
--Grab Venue post.title by Event _EventVenueID = post.ID
        \'orderby\' => \'Venue post.title\',
        \'order\' => \'ASC\',
    );
$posts = query_posts($args);
?>
看起来我最终会得到一个包含两个帖子的结果。ID字段。有没有办法做到这一点?

1 个回复
SO网友:Gareth Gillman

您可以在orderby中使用meta\\uu值,例如。

\'post_type\' => \'tribe_events\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
 \'relation\' => \'AND\',
 \'event_title\' => array(
  \'key\' => \'post.title\',
 ),
 \'event_id\' => array(
  \'key\' => \'EventVenueID\',
 ), 
),
\'orderby\' => \'event_title\',
未经测试,但应能正常工作,WP-https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/

相关推荐

浏览器刷新时删除数据库条目,AJAX PHP jQuery

我有一个表单,在通过ajax提交表单时更新数据库表中的列。一切都很好,数据库表列可以获取信息,但一旦刷新浏览器,信息就会从数据库中删除。如果meta\\u值不存在,但meta\\u值也在提交表单时创建的数据库中,则PHP将执行数据库更新。我希望信息保留在数据库中,直到或除非meta\\u值被删除或不存在。任何见解都将不胜感激。PHPadd_action(\'wp_ajax_hide_this\', \'hide_this_by_id\'); add_action(\'wp_ajax_nopriv_