我正在尝试在自定义帖子(特定事件页面)上订购自定义帖子类型(赞助/赞助)。但是,我不太确定如何执行此操作。我已经下载了订单类型插件。当我尝试使用Post Order Type插件时,只能将订单拖放到主要的Sponsors后端/仪表板页面(列出了所有发起人)上。当我在那里更改订单时,它会更改指定事件页面中的赞助者订单,以与主要赞助者页面上的订单相对应。但是,我希望能够直接在特定事件的页面上更改顺序,因为每个事件应具有与其事件不同的特定顺序。我还下载了Toolset,但不确定是否可以帮助您。
backend dashboard of specifying event page请参见示例事件页面的后端仪表板的图片。帖子标题是特定赞助者的编号ID。赞助商是赞助商名称的列表。
有关如何执行此操作的任何建议?如何制作它,以便我可以按希望的顺序显示赞助商?自定义帖子类型有2种:赞助商和活动。我正在尝试将具有特定顺序的赞助商输出到活动详细信息页面。
<?php
// get event sponsorship list
$sponsorship_object = types_child_posts('sponsorship');
if (count($sponsorship_object) != 0) {
?>
<div class="container event-sponsors text-center">
<p class="partners_band_title">Event Sponsors</p>
<?php
// extract sponsor ids
$sponsors = array();
foreach($sponsorship_object as $sponsor_object) {
$sponsors[$sponsor_object->post_title] =
wpcf_pr_post_get_belongs($sponsor_object->ID, 'sponsors');
}
// ensure array is ordered by key
ksort($sponsors);
// query sponsors; orderby is required to ensure data is return in the
same order we gave it
$args = array( 'post_type' => 'sponsors', 'post__in' => $sponsors
, 'orderby' => 'post__in', 'posts_per_page' => -1);
$sponsor_loop = new WP_Query( $args );
if ( $sponsor_loop->have_posts() ) {
$sponsor_count = 0;
while ( $sponsor_loop->have_posts() ) {
$sponsor_loop->the_post();
echo '<div class="col-xs-6 col-sm-3 col-md-2 col-lg-2 text-
center">';
echo '<a href="'.esc_url( get_post_meta($post->ID,
'wpcf-sponsor_website', true) ).'"
target="_blank">'.wp_get_attachment_image(
get_post_thumbnail_id($post->ID), 'big-thumbs' ).'</a>';
echo '</div>';
$sponsor_count++;
/*if ($sponsor_count % 5 == 0) {
echo '<div class="col-xs-12 col-sm-12 col-md-1 col-lg-1"></div>';
echo '</div>';
}*/
}
}
wp_reset_postdata();
?>
</div>
<?php>
谢谢
答案 0 :(得分:0)
您似乎想按以下三项顺序订购商品:
ksort
相同的行中的键。ksort
强制执行的顺序。据我所知,该插件使用menu_order
(这似乎是最常见的WP方式)。
您最简单的解决方案可能是将查询arg数组中的orderby
更改为menu_order
(请参见the Codex docs for WP_Query
)。该arg确实接受一个数组,因此,如果您希望保留现有的排序作为辅助键,则可以使用['menu_order', 'post__in']
作为orderby
arg。
尝试以此替换您的行:
$args = array
'post_type' => 'sponsors',
'post__in' => $sponsors,
'orderby' => ['menu_order', 'post__in'],
'posts_per_page' => -1
);