自定义邮政类型的自定义邮购

时间:2012-05-03 作者:Chris

我需要一个自定义的可湿性粉剂查询写,将显示一个页面列表分页(自定义张贴类型)在一个自定义的顺序。

我有一个称为“课程”的自定义帖子类型我有一个称为“事件”的自定义帖子类型

“courses”自定义帖子类型有一个称为“course\\u id”的元键。“events”自定义帖子类型有一个称为“course\\u id”的元键。

目前,我使用下面这样的代码来显示分页的“课程”列表。

$args = array(
    \'post_type\'=> \'courses\',
    \'order\'    => \'DESC\'
);
query_posts( $args );

// The Loop
while ( have_posts() ) : the_post();
    echo \'<li>\';
    the_title();
    echo \'</li>\';
endwhile;

// Reset Query
wp_reset_query();
我想做的是,显示相同的课程列表,但根据相关“事件”的数量排序。

示例:-

Course A -> course_id = A01
Course B -> course_id = B01
Course C -> course_id = C01

Event 01 -> course_id = A01
Event 02 -> course_id = A01
Event 03 -> course_id = B01
Event 04 -> course_id = B01
Event 05 -> course_id = B01
Event 06 -> course_id = C01
自定义WP查询将查看每个“course”和course\\u id。然后,它将使用course\\u id作为唯一键统计相关“事件”的数量。然后,代码将输出“courses”作为

Course B
Course A
Course C
或(如果按升序列出):

Course C
Course A
Course B
为了让您了解规模,可能有大约200种不同的“课程”。每个“课程”可能有20-200个与之相关的“事件”。

3 个回复
SO网友:kaiser

由于没有明确说明(在代码中)“相关”CPT是如何相互关联的,我想发布一个主要受监管的CPT可能性。

当你register_post_type(), 你的论点是hierarchical 应设置为true 考虑到\'supports\' => array( \'page-attributes\' ). 然后允许您定义订单manually.

enter image description here

SO网友:Stephen Harris

首先Never use query_posts() :)

至于按事件数排序,这可以通过一些定制SQL工作来完成,而且成本很高。

一种更好、更简单的方法是创建另一个元键(例如,_event_count - 下划线防止WordPress自动显示)用于存储与该课程相关的事件数的课程。

无论何时更新事件,都必须“巧妙地”更新:(即,检查课程id是否已更改,是否已更新其更改的起始课程和更改的目的课程,以反映此更改)。

一旦你设置好了,你就可以order by the value of the meta key _event_count.

您可以创建/更新_event_count 元密钥使用update_post_meta. 您需要连接到save_post, (检查权限和nonces等),检查帖子类型(检查其事件),最后检查其课程id是否已更改,使用:

SO网友:ItayXD

您应该使用分类法,而不是id元框来链接两种帖子类型。此外,我必须不同意上面关于query\\u posts()的回答,您应该使用它,但只能用于主循环,并且只有一次,请检查codex。

结束

相关推荐

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

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