Afficher le contenu d'une catégorie spécifique
-
-
_Exactement_ qu'est-ce quine fonctionnepas?Aussi,veuillezne pas utiliser `query_posts`._Exactly_ what doesn't work? Also, please do not us `query_posts`.
- 0
- 2014-05-21
- s_ha_dum
-
Salut,au lieu d'afficher les articles d'une certaine catégorie,il affiche les articles detoutes les catégoriesHi, instead of displaying posts from a certain category it displays posts from all categorys
- 0
- 2014-05-21
- user3615681
-
Votrepage d'actualitésest-elle définie dans vosparamètres de lecture?Is your news page your posts page set in your Reading Settings?
- 0
- 2014-05-21
- Brad Dalton
-
https://wordpress.stackexchange.com/a/290909/133699https://wordpress.stackexchange.com/a/290909/133699
- 0
- 2018-03-28
- Super Model
-
5 réponses
- votes
-
- 2014-05-21
L'argumentn'estpas
category
,c'estcat
. Votre requête échoue car vous utilisez un argument quin'existepas.$args = array( 'post_type' => 'post' , 'orderby' => 'date' , 'order' => 'DESC' , 'posts_per_page' => 6, 'cat' => '3', 'paged' => get_query_var('paged'), 'post_parent' => $parent ); $q = new WP_Query($args); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); // your loop } }
Notez quej'ai converti votre
query_posts()
en unnouvel objetWP_Query
. N'utilisezjamaisquery_posts()
. Même le Codex le déclare.Remarque: cettefonctionn'estpas destinée à être utiliséepar desplugins ou desthèmes. Comme expliquéplustard,ilexiste demeilleures optionsplusperformantes àmodifier la requêteprincipale. query_posts ()est unemanièretrop simplisteet problématique pourmodifier la requêteprincipale d'unepageen la remplaçantpar unenouvelleinstance de la requête. Ilestinefficace (réexécute les requêtes SQL)et va carrément échouer dans certaines circonstances (particulièrement souvent lors dutraitement desmessages pagination). Tout code WPmoderne doit utiliser desméthodesplusfiables,telles que en utilisant le hookpre_get_posts,à cettefin.
Notez également quej'ai supprimé lesbalises PHP d'ouvertureet defermetureinutileset formaté le codepour unemeilleure lisibilité. Que syntaxe de structure de contrôle alternative est uneformulepour l'échec,d'aprèsmonexpérience.
The argument isn't
category
, it iscat
. Your query fails because you are using an argument that doesn't exist.$args = array( 'post_type' => 'post' , 'orderby' => 'date' , 'order' => 'DESC' , 'posts_per_page' => 6, 'cat' => '3', 'paged' => get_query_var('paged'), 'post_parent' => $parent ); $q = new WP_Query($args); if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); // your loop } }
Notice that I have converted your
query_posts()
into a newWP_Query
object. Do not usequery_posts()
, ever. Even the Codex states so.Note: This function isn't meant to be used by plugins or themes. As explained later, there are better, more performant options to alter the main query. query_posts() is overly simplistic and problematic way to modify main query of a page by replacing it with new instance of the query. It is inefficient (re-runs SQL queries) and will outright fail in some circumstances (especially often when dealing with posts pagination). Any modern WP code should use more reliable methods, like making use of pre_get_posts hook, for this purpose.
Also note that I removed unnecessary PHP opening and closing tags and formatted the code for better readability. That alternative control structure syntax is a formula for failure, in my experience.
-
- 2014-05-21
Personnellement,je leferaisplutôt.
Au lieu de:
'category' => '3',
Remplacez-lepar ceci:
'category_name' => 'my-category-slug'
Trouvez évidemment lenom de votre slug de catégorieet remplacez "my-category-slug".
Commementionnépar @ s-ha-dum,il seraitpréférable dene pas utiliser cetteméthodeet plutôt d'utiliser laméthode WP_Query.Vouspouvez le voir dans le Codex WordPressici: http://codex.wordpress.org/Class_Reference/WP_Query#Paramètres
I would personally do this rather.
Instead of:
'category' => '3',
Replace it with this:
'category_name' => 'my-category-slug'
Obviously find the name of your category slug and replace 'my-category-slug'.
As mentioned by @s-ha-dum it would be better to not use this method and rather use WP_Query method. You can see it in the WordPress Codex here: http://codex.wordpress.org/Class_Reference/WP_Query#Parameters
-
- 2018-01-12
Obtenez les cinqpremiersmessages avec une catégorie spécifique
<?php // the query $the_query = new WP_Query(array( 'category_name' => 'post_category_name', 'post_status' => 'publish', 'posts_per_page' => 5, )); ?> <?php if ($the_query->have_posts()) : ?> <?php while ($the_query->have_posts()) : $the_query->the_post(); ?> <?php the_category(); ?> <?php the_title(); ?> <?php the_excerpt(); ?> <?php the_post_thumbnail(); ?> <?php the_content(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
Get First Five Posts With Specific Category
<?php // the query $the_query = new WP_Query(array( 'category_name' => 'post_category_name', 'post_status' => 'publish', 'posts_per_page' => 5, )); ?> <?php if ($the_query->have_posts()) : ?> <?php while ($the_query->have_posts()) : $the_query->the_post(); ?> <?php the_category(); ?> <?php the_title(); ?> <?php the_excerpt(); ?> <?php the_post_thumbnail(); ?> <?php the_content(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
-
- 2014-05-21
Ajoutez ce code dans votrefichier defonctions:
function wpsites_display_one_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '3' ); } } add_action( 'pre_get_posts', 'wpsites_display_one_category' );
Modifiez la balise conditionnelle is_home ()pour qu'elle corresponde à votrepage d'actualités ou à votreboucle depage demessages sinécessaire.Tout ce que vous avez défini dans Paramètres> Lecture.
Add this code in your functions file:
function wpsites_display_one_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '3' ); } } add_action( 'pre_get_posts', 'wpsites_display_one_category' );
Change the is_home() conditional tag to match your news page or posts page loop if needed. Whatever you set in Settings > Reading.
-
- 2018-11-13
Vous devriez changer
'category' => '3',
dans votre code.
'cat' => '3',
You should change
'category' => '3',
to in your code.
'cat' => '3',
J'essaie defaireen sorte quemapage d'actualités affiche le contenu d'une seule catégorie (numéro 3),maisje n'arrivepas à lefairefonctionner. Au lieu d'afficher simplement les articles de la catégorie 3,il affiche les articles detoutes les catégories.
Voicimon code: