J'utilise le plugin Gd Star Rating et le plugin bbPress . Le premier plugin a un argument pour trier les messages par nombre de votes. Mais malheureusement, cela ne fonctionne pas avec WP_Query
(et apparemment, la boucle bbPress l’utilise).
C'est pourquoi j'ai voulu créer ma propre manière de trier les types de publication personnalisés dans une boucle personnalisée.
Disons que j'ai une fonction ou une variable qui génère le nombre de votes de chaque message:
<?php votes_number(); ?> or $votes_number
Comment puis-je les utiliser dans quelque chose comme ça:
query_posts( "orderby=votes_number" );
ou
query_posts( "my_custom_orderby=votes_number" );
Pour commander à l'aide de champs personnalisés basés sur une publication, vous devez stocker votre variable dans un champ réel à l'aide de add_post_meta
ou update_post_meta
, ou l'ajouter manuellement au champ de publication.
De cette façon, vous pouvez utiliser WP Query
pour interroger la méta-valeur de ce champ et trier par valeur. Par exemple;
//adds a value to a field with the key name 'vote_field' and your variable.
<?php add_post_meta($post_id, 'vote_field', $votes_number); ?>
//query the key 'vote_field' and order by
$query = new WP_Query( array (
'post_type' => 'post',
'meta_key' => 'vote_field',
'orderby' => 'meta_value',
'order' => 'ASC' ) );
Il existe également des paramètres supplémentaires que vous pouvez utiliser, tels que meta_value_num
et ' meta_compare '