按档案文件中的页面属性对自定义帖子类型进行排序不起作用

问题描述:

我创建了我的Costom帖子类型,但我想按页面属性中选择的编号排序帖子。按档案文件中的页面属性对自定义帖子类型进行排序不起作用

Page Attributes

定制后type.php

function register_post_team() { 
    $labels = array(
    'name'    => __('Zespół', '_tk'), 
    'singular_name'  => __('Zespół', '_tk'), 
    'add_new'   => __('Dodaj nową osobę', '_tk'), 
    'add_new_item'  => __('Dodaj nową osobę', '_tk'), 
    'edit_item'   => __('Edytuj', '_tk'), 
    'new_item'   => __('Nowa', '_tk'), 
    'all_items'   => __('Wszystkie', '_tk'), 
    'view_item'   => __('Zobacz', '_tk'), 
    'search_items'  => __('Szukaj', '_tk'), 
    'not_found'   => __('Nie zneleziono żadnej', '_tk'), 
    'not_found_in_trash' => __('Nie zneleziono żadnej w koszu', '_tk'), 
    'parent_item_colon' => '', 
    'menu_name'   => __('Zespół', '_tk'), 
); 
    $args = array(
    'labels'   => $labels, 
    'hierarchical'  => true, 
    'supports'   => array('title', 'page-attributes', 'revisions', 'thumbnail', 'editor'), 
    'public'   => true, 
    'show_ui'   => true, 
    'show_in_menu'  => true, 
    'show_in_nav_menus' => true, 
    'publicly_queryable' => true, 
    'exclude_from_search' => false, 
    'has_archive'  => true, 
    'rewrite'   => array('slug' => 'zespół','with_front' => false), 
    'menu_position'  => 6, 
    'menu_icon'   => 'dashicons-groups' 
); 
    register_post_type('team', $args); 
} 
add_action('init', 'register_post_team'); 

/* realisation taxonomies */ 
function add_team_category() { 
    $labels = array(
    'name'    => __('Kategorie zespołu', '_tk'), 
    'singular_name'  => __('Kategoria zespołu', '_tk'), 
    'search_items'  => __('Szukaj kategorii', '_tk'), 
    'all_items'   => __('Wszystkie kategorie', '_tk'), 
    'parent_item'  => __('Kategoria nadrzędna', '_tk'), 
    'parent_item_colon' => __('Kategoria nadrzędna:', '_tk'), 
    'edit_item'   => __('Edytuj kategorię', '_tk'), 
    'update_item'  => __('Aktualizuj kategorię', '_tk'), 
    'add_new_item'  => __('Dodaj nową kategorię', '_tk'), 
    'new_item_name'  => __('Nowa kategoria', '_tk'), 
    'menu_name'   => __('Kategorie zespołu', '_tk'), 
); 
    $args = array(
    'labels' => $labels, 
    'hierarchical' => true, 
    'show_ui' => true, 
    'query_var' => true, 
    'rewrite' => array('slug' => 'kategorie-zespołu') 
); 
    register_taxonomy('team_category', 'team', $args); 
} 
add_action('init', 'add_team_category', 0); 

这里是我的存档 - team.php(在这里我想订购的职位文件)

<?php get_header(); ?> 

    <div class="container main-content"> 
     <?php if (have_posts()) : ?> 
      <?php if (get_field('entry_text_team','option')) { ?> 
       <div class="row text-center entry-text"> 
        <?php the_field('entry_text_team','option'); ?> 
       </div> 
      <?php } ?> 
      <div class="row archive-list"> 
       <?php $del = 100; 
       while (have_posts()) : the_post();?> 


        <?php $personal_img = get_field('personal_img');?> 
        <article id="post-<?php the_ID(); ?>" <?php post_class('archive-item col-sm-24 single-opinion wow fadeInUp'); ?> data-wow-delay="<?php echo $del; ?>ms"> 
         <div class="col-sm-4 personal_img_box"> 
          <div class="personal_img"> 
           <img src="<?php echo $personal_img['url']; ?>" alt=""> 
          </div> 
         </div> 
         <div class="col-sm-20"> 
          <div class="person_name"> 
           <h3> 
            <?php the_title(); ?> 
           </h3> 
          </div> 
          <div class="person_position"> 
           <?php the_field('position');?> 
          </div> 
          <div class="person_description"> 
           <?php the_field('description');?> 
          </div> 
         </div> 
        </article> 

       <?php $del = $del + 150; 
       endwhile; ?> 
      </div> 

      <?php //_tk_content_nav('nav-below'); ?> 
      <?php _tk_pagination(); ?> 

     <?php else : ?> 

      <?php get_template_part('no-results', 'index'); ?> 

     <?php endif; ?> 

     <div class="row text-center"> 
      <a href="http://pokochajlatanie.pro-page.pl/opinie/" class="btn btn-primary">Opinie o nas</a> 
     </div> 
    </div> 

<?php get_footer(); ?> 

它看起来像甚至如果我选择页面属性中的某个订单号码,它根本不会排序。我认为目前它按照创建日期显示帖子。

+1

对于任何查询,是以默认顺序排序的日期是默认WP订单。您需要为该查询添加自定义顺序。让我用例子来写答案。 – Mohsin

您需要将其添加到您的functions.php文件中,以便在调用模板文件之前应用它。您正在寻找的是所谓的排序依据:这里Menu_order是法典解释:

menu_order” - 订购页面顺序。最常用于页面(编辑页面属性框中的订单字段)和附件(插入/上传媒体库对话框中的整数字段),但可用于具有不同'menu_order'值的任何帖子类型(它们都默认到0)。 来源:https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

当你想这个命令只适用于归档团队CPT,你可以添加条件像下面这样就不会影响网站像博客文章或网页等其他地区...

/* Sort team members like page order i.e. the number assigned */ 
function team_custom_post_order_sort($query){ 
    if ($query->is_main_query() && is_post_type_archive('team')){ 
    $query->set('orderby', 'menu_order'); 
    $query->set('order' , 'ASC'); 
    } 
} 
add_action('pre_get_posts' , 'team_custom_post_order_sort'); 

注:代码未经测试,请在localhost上检查以解决任何错误。

+0

只是修正了代码中的错字。 – Mohsin

+0

您的解决方案100%有效。谢谢。 –

+0

很高兴知道! :)快乐的编码! – Mohsin