2017-09-08 1 views
3

J'ai créé mon type de message Costom mais je souhaite trier les articles par le nombre choisi dans les attributs Page.Le tri d'un type de message personnalisé par attributs de page dans le fichier archive ne fonctionne pas

Page Attributes

Le sur mesure post-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); 

Voici mes archives-team.php (le fichier où je voudrais commander les messages)

<?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(); ?> 

Il semble que même si je choisis un numéro de commande dans les attributs de page, il ne triera pas du tout. Je pense que pour l'instant il affiche les messages à la date à laquelle il a été créé.

+1

Oui date dans l'ordre Desc est l'ordre WP par défaut pour toute requête. Vous devez ajouter un ordre personnalisé à cette requête. Laissez-moi écrire la réponse avec un exemple. – Mohsin

Répondre

2

Vous devez ajouter ceci dans votre fichier functions.php pour qu'il soit appliqué avant l'appel du fichier modèle. Le orderby que vous recherchez est appelé: Menu_order voici l'explication de codex:

'menu_order' - par ordre Ordre. Utilisé le plus souvent pour Pages (champ Ordre dans la zone Modifier les attributs de page) et pour Pièces jointes (champs entiers dans la boîte de dialogue Insérer/charger une galerie multimédia), mais peut être utilisé pour tout type de poste avec des valeurs 'menu_order' distinctes. à 0). Source: https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

Comme vous voulez appliquer cet ordre que les archives TEAM CPT, vous pouvez ajouter conditionnelle comme ci-dessous il n'a pas d'effet d'autres parties du site comme les messages de blog ou des pages etc ...

/* 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'); 

Remarque: Le code n'a pas été testé. Veuillez vérifier sur localhost pour corriger les fautes de frappe éventuelles.

+0

Juste une faute de frappe dans le code. – Mohsin

+0

Votre solution fonctionne à 100%. Je vous remercie. –

+0

Bon à savoir! :) Codage heureux! – Mohsin