0

Pourriez-vous s'il vous plaît me dire comment trier mes produits (c'est mon type de poste personnalisé) par le champ (voir photo) dans ACF?Trier par champ ACF dans les produits dans mon Custom Post Type dans Wordpress

enter image description here

Voici mon code de champ personnalisé:

/*******   *******/ 
/* CUSTOM POST TYPE  */ 
/*******   *******/ 

// Custom Post Type - product 
function register_post_product() { 
    $labels = array(
    'name'    => __('Products', '_tk'), 
    'singular_name'  => __('Product', '_tk'), 
    'add_new'   => __('Add product', '_tk'), 
    'add_new_item'  => __('Add New product', '_tk'), 
    'edit_item'   => __('Edit product', '_tk'), 
    'new_item'   => __('New product', '_tk'), 
    'all_items'   => __('All products', '_tk'), 
    'view_item'   => __('View product', '_tk'), 
    'search_items'  => __('Search product', '_tk'), 
    'not_found'   => __('No product found', '_tk'), 
    'not_found_in_trash' => __('No product found in the Trash', '_tk'), 
    'parent_item_colon' => '', 
    'menu_name'   => __('Products', '_tk'), 
); 
    $args = array(
    'labels'   => $labels, 
    'hierarchical'  => true, 
    'supports'   => array('title', 'editor', 'page-attributes', 'thumbnail'), 
    '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' => 'produkty','with_front' => false), 
    'menu_position'  => 6, 
    'menu_icon'   => 'dashicons-hammer' 
); 
    register_post_type('product', $args); 
} 
add_action('init', 'register_post_product'); 

je fait une recherche dans google et j'ai essayé de trier comme ça:

add_filter('pre_get_posts', 'my_get_posts'); 
function my_get_posts($query) { 
     $query->set('orderby', 'meta_value_num'); 
     $query->set('order', 'ASC'); 
     $query->set('meta_query','capacity'); 

     return $query; 
} 

Mais sans résultats.

Répondre

0

essayer ce ci-dessous fonction pour pre_get_posts dans wordpress

<?php 
add_filter('pre_get_posts', 'my_get_posts'); 
function my_get_posts($query) { 

    $query->set('post_type', 'product'); 
    $query->set('meta_key', 'capacity'); 
    $query->set('orderby', 'meta_value'); // meta_value_num or meta_value 
    $query->set('order', 'ASC'); 


    return $query; 
} 
?> 
+0

Malheureusement, je avoir le bage blanc en re sult –

0

Très probablement le problème est $query->set('meta_query','capacity');

meta_query devrait être un un tableau, comme

array(array('key' => 'capacity', 
      'value' => array(0, 1000), 
      'compare' => 'BETWEEN', 
      'type' => 'numeric', 
    )); 

https://codex.wordpress.org/Class_Reference/WP_Query

+0

Je ne sais pas si je l'ai tapé correctement? 'add_filter (' pre_get_posts ',' my_get_posts '); function mes_get_posts ($ query) { \t $ query-> set ('orderby', 'meta_value_num'); \t $ query-> set ('order', 'ASC'); \t $ query-> set ('meta_query', array ( 'clé' => 'capacité', 'valeur' ​​=> array (0, 10000), 'comparer' => 'ENTRE', )) ; \t \t return $ query; } « Parce que non œuvres :( –

+0

Votre code semble correct, il est mon mauvais. Je mis à jour le code dans la réponse, meta_queries sont des tableaux imbriqués. Mais @ Shital-Marakana » solution de est encore mieux et devrait fonctionner aussi bien Vous pouvez obtenir une page blanche à cause d'une erreur si WP_DEBUG est désactivé dans wp-config.php – c0der

+0

Il ya toujours quelque chose qui ne va pas avec la solution @ Shital-Marakana J'ai commenté deux lignes: '$ query-> set (' post_type ',' product '); $ query-> set (' meta_key ',' capacity '); ' et maintenant les produits apparaissent mais toujours non triés.Toute idée de ce qui pourrait être faux? –