如何在自定义邮件类型上添加显示顺序?wordpress

如何在自定义邮件类型上添加显示顺序?wordpress,wordpress,custom-wordpress-pages,Wordpress,Custom Wordpress Pages,我正试图在自定义帖子(特定活动页面)上订购我的自定义帖子类型(赞助/赞助商)。然而,我不太清楚如何做到这一点。我已经下载了邮购类型插件。当我尝试使用PostOrder类型插件时,我只能在主赞助商后端/仪表板页面(列出所有赞助商)上拖放订单。当我在那里更改顺序时,它会根据主办方页面上的顺序更改指定活动页面中的赞助商顺序。但是,我希望能够直接在特定事件的页面上更改顺序,因为每个事件都应有不同的特定事件顺序。我还下载了Toolset,但不确定这是否有帮助 请参阅示例事件页面的后端仪表板的附加图片。Po

我正试图在自定义帖子(特定活动页面)上订购我的自定义帖子类型(赞助/赞助商)。然而,我不太清楚如何做到这一点。我已经下载了邮购类型插件。当我尝试使用PostOrder类型插件时,我只能在主赞助商后端/仪表板页面(列出所有赞助商)上拖放订单。当我在那里更改顺序时,它会根据主办方页面上的顺序更改指定活动页面中的赞助商顺序。但是,我希望能够直接在特定事件的页面上更改顺序,因为每个事件都应有不同的特定事件顺序。我还下载了Toolset,但不确定这是否有帮助

请参阅示例事件页面的后端仪表板的附加图片。Post Title是特定赞助商的编号ID。赞助商是赞助商名称的列表

有什么建议吗?如何使它,以便我可以显示赞助商的顺序,我希望它出现?有两种自定义帖子类型:赞助商和活动。我正在尝试将具有特定顺序的赞助商输出到事件详细信息页面

 <?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>

活动赞助商


您似乎试图按三种不同的方式进行订购:

  • 一个键,位于带有
    ksort
    的行中
  • 根据注释,“相同的顺序”,这可能是由
    ksort
    强制执行的顺序
  • 所需的顺序,从您的插件
从他们的文档中可以看出,这个插件使用了
菜单_顺序
(这似乎是最常见的WP方式)

最简单的解决方案可能是将查询arg数组中的
orderby
更改为
菜单\u order
(请参阅)。该arg确实接受数组,因此如果您希望将现有排序保留为辅助键,则可以使用
[“菜单顺序”,“post\u in']
作为您的
orderby
arg

尝试用以下内容替换您的线路:

$args = array
    'post_type' => 'sponsors',
    'post__in' => $sponsors,
    'orderby' => ['menu_order', 'post__in'],
    'posts_per_page' => -1
);

我把它改成了这个,它的显示顺序不正确!关于如何解决这个问题还有其他想法吗?