2017-10-20 18 views
0

J'ai une liste de types de messages personnalisés que j'affiche sur mon site. En plus de ces types de poste, j'ai ajouté un plugin à mon WordPress qui me permet d'ajouter un coup de pouce système de notation à chaque type de poste, de sorte qu'il ressemble à ceci:Commander des types de publications personnalisées dans WordPress par la meta_value d'un autre plugin

https://i.imgur.com/jXR26i5.jpg

Le code se présente comme suit :

<?php 
/* The custom post types query */ 
    $query = new WP_Query(array(
     "post_type" => "motto", 
     "order" => "ASC", 
    )); 
    while($query -> have_posts()) : $query -> the_post(); 
?> 

/* Container with the ratings from the plugin + each post type */ 
<div id="motto-container"> 
    <?=function_exists('thumbs_rating_getlink') ? thumbs_rating_getlink() : ''?> 
    <h3 class="abimottos"> 
     <?php echo get_post_meta($post->ID, 'motto_titel', true); ?> 
    </h3> 
</div> 

J'ai une liste de ces messages personnalisés + leurs notes, et bien sûr chaque poste a une notation individuelle et je veux commander mes types de poste personnalisé après la valeur de ces évaluations. Comment pourrais-je archiver ça? Je sais que la méta_key pour les classements est _thumbs_rating_up (puisque j'ai déjà modifié la valeur avec le plugin ARI Adminer), puis-je utiliser cette méta_key pour commander les types de post personnalisés après la meta_value des classements? Je suis assez nouveau pour PHP et les bases de données.

+0

https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters – CBroe

Répondre

1

Vous utilisez déjà WP_Query pour obtenir les messages, vous pouvez donc spécifier la meta_key à trier par dans le tableau $ args, par exemple.

$query = new WP_Query(array(
    'post_type' => 'motto', 
    'meta_key' => 'thumbs_rating_up', 
    'orderby' => 'thumbs_rating_up', 
    'order'  => 'DESC' 
)); 

Notez que vous devez inclure le nom de clé dans les deux meta_key et orderby. Je suppose également que vous voulez trier par ordre décroissant pour afficher les notes les plus élevées en premier.

Ref: Wordpress Codex for WP_Query

En outre, une note sur la meta_key:
meta_keys préfixées avec un trait de soulignement sont privés et caché des champs personnalisés, vous donc normalement utiliser la version sans un trait de soulignement. Cela peut ne pas être le cas ici car je suppose que l'évaluation ne peut pas être modifiée dans l'admin, mais assurez-vous simplement que la méta_key que vous devez utiliser est en fait _thumbs_rating_up et non thumbs_rating_up.

+0

Merci beaucoup! Cela m'a aidé! Je devais juste changer le orderby à "meta_value_num", car "thumbs_rating_up" les commanderait par leur post_id :) –

+0

@NikolaiNowolodski Je pourrais aider! Je ne connaissais pas le plugin que vous utilisiez, j'ai donc utilisé "thumbs_rating_up" dans ma réponse parce que j'ai supposé à partir de votre question qu'il avait la note, mais heureux que vous ayez trouvé la bonne clé :) – FluffyKitten