2010-11-11 6 views
1

J'utilise le query_posts pour l'élément "Page" plutôt que "Post". Je veux avoir la possibilité de rendre toujours la page "en vedette" sur le dessus, nous pourrions ajouter un champ personnalisé appelé "featured_product", si c'est l'eq "1" puis afficher le message comme le tout premier.wordpress query_posts page en vedette toujours au-dessus

Voici le code de base de la requête. Quelqu'un aide s'il vous plaît !?

<?php query_posts(array('showposts' => 1000, 'post_parent' => $post->ID, 'post_type' => 'page', 'orderby' => 'title', 'order' => 'ASC')); ?> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
...        
<?php endwhile; else: ?> 
... 
<?php endif; ?> 
+0

Ceci est une bonne question à poser dans http://wordpress.stackexchange.com/ –

Répondre

2

Vous pouvez exécuter n'importe quel nombre de query_posts() sur une page donnée. Cela vous donne quelques alternatives pour montrer des pages en vedette puis des pages régulières.

Une façon, et la façon dont j'organise souvent le contenu sur mes sites WordPress, est d'avoir une catégorie 'vedette'. Les publications ou les pages en vedette se voient attribuer cette catégorie, ainsi que toute autre catégorie appropriée. Ensuite, vous utilisez le nom ou l'ID de cette catégorie dans la chaîne de requête query_posts() ou get_posts().

//get featured posts (category_ID = 13) 
query_posts('cat=13&post_type=page'); 
//the loop goes here 

Une autre méthode consiste à utiliser meta_key et meta_value dans votre chaîne de requête.

query_posts('meta_key=featured_product&meta_value=1&post_type=page'); 
//the loop goes here 

Ces deux méthodes supposent que lorsque vous interroger et d'afficher vos pages en vedette, vous interroger vos pages standard en excluant la catégorie affectés à des postes en vedette (13 dans cet exemple) ou en utilisant meta_compare si les champs personnalisés sont utilisé

//get non-featured posts 
query_posts('cat=-13&post_type=page') 
//or 
query_posts('meta_key=featured_product&meta_compare=!=&meta_value=1'); 
//the loop goes here 

Si vous voulez faire tout cela avec une requête et de l'ordre par statut en vedette, je spécule que vous pouvez commander par meta_value.

//this might order by meta_value, i didn't test it. 
query_posts('post_type=page&orderby=meta_value_num&order=asc'); 

Je recommande l'une des premières approches, car il permettra un style personnalisé des produits présentés, et vraiment n'avoir des inconvénients. J'ai des sites avec quatre ou cinq requêtes personnalisées sur chaque page.

Bonne chance.