Lister tous les messages dans le type de message personnalisé par taxonomie
5 réponses
- votes
-
- 2012-09-25
Essayez ceci
$custom_terms = get_terms('custom_taxonomy'); foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array('post_type' => 'custom_post_type', 'tax_query' => array( array( 'taxonomy' => 'custom_taxonomy', 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { echo '<h2>'.$custom_term->name.'</h2>'; while($loop->have_posts()) : $loop->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; } }
Nous obtenonstous lestermes d'unetaxonomie,lesparcouronsen boucleet déclenchons un lien detitre vers chaque article appartenant à ceterme. Si vous avezbesoin de réorganiser lestermes detaxonomie,vouspouvez lefaire assezfacilement avec unplugin. Réorganiser lataxonomie ,je crois. Mais faites attention que ceplugin ajoute (!) une autre colonne à votretable lors de l ' activation et ne la supprimepas lors de la désactivation !
Try this
$custom_terms = get_terms('custom_taxonomy'); foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array('post_type' => 'custom_post_type', 'tax_query' => array( array( 'taxonomy' => 'custom_taxonomy', 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); if($loop->have_posts()) { echo '<h2>'.$custom_term->name.'</h2>'; while($loop->have_posts()) : $loop->the_post(); echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; endwhile; } }
We get all the terms of a taxonomy, loop through them, and fire off a title link to each post that belongs to that term. If you need to reorder the taxonomy terms, you can do so with a plugin pretty easily. Reorder Taxonomy, I believe. But pay attention that this plugin adds(!) another column to your table on activation and does not remove it upon deactivation!
-
Salut @GhostToast Celafonctionnetrèsbien,j'ai une question directe,commentpuis-jefiltrer celapartaxonomie,j'ai dutennis,dugolf,dufootball,du voleyball,ce code les amènetous avec leurmessage dont lataxonomieest vérifiée,Commentpuis-jefiltrer surafficher uniquement lataxonomie dufootball avec sesmessages.Hi @GhostToast This works great, I have a direct question, how can I filter this by taxonomy, I have tennis, golf, soccer, voleyball, this codes brings them all with their post that have the taxonomy checked, How can I filter to only show the Soccer Taxonomy with its posts.
- 0
- 2017-03-07
- Rodrigo Zuluaga
-
@RodrigoZuluaga ce serait alors une simple requête debase.retirez `$ custom_terms`et le`foreach () `et définissez simplement les` `termes ''manuellement sur le slug ou ce que vous voulez.@RodrigoZuluaga that would be a basic single query then. take away `$custom_terms` and the `foreach()` and just define `'terms'` manually to the slug or whatever you want.
- 0
- 2017-03-07
- GhostToast
-
Je l'ai unpeu différentje pensemaiston codeestbon $ args=array ('post_type'=> 'publica', 'tax_query'=>tableau ( tableau ( 'taxonomy'=> 'comision-publicaciones', 'field'=> 'nom', 'terms'=>tableau ($ter_name) ), ), );I got it little different I think but your code hell good $args = array('post_type' => 'publica', 'tax_query' => array( array( 'taxonomy' => 'comision-publicaciones', 'field' => 'name', 'terms' => array($ter_name) ), ), );
- 0
- 2017-03-08
- Rodrigo Zuluaga
-
- 2012-09-25
Cen'estpas une solutionparticulièrement élégante,mais vouspouvez créerplusieurs requêtes chacunepour lestermes spécifiqueset lesgénérerensuite. J'espère que quelqu'unpourratrouver unemeilleurefaçon d'extraire automatiquement lestermespourmodifier la sortie/letri. Mais cela vouspermettrait de démarrer.
<?php //First Query for Posts matching term1 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term1' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; } //RESET YOUR QUERY VARS wp_reset_query(); //Second Query for term2 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term2' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; }
Not a particularly elegant solution but you can create multiple queries each for the specific terms and then output them. Hopefully someone can come up with a nicer way of automatically pulling the terms to modify the output/sorting. But this would get you going.
<?php //First Query for Posts matching term1 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term1' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; } //RESET YOUR QUERY VARS wp_reset_query(); //Second Query for term2 $args = array( 'tax_query' => array( array( 'taxonomy' => 'taxonomy_1', 'field' => 'slug', 'terms' => array( 'term2' ) ), ), 'post_type' => 'my-post-type' ); $query = new WP_Query( $args ); if ( have_posts() ) { $term = $query->queried_object; echo 'All posts found in ' . $term->name; while ( have_posts() ) : the_post(); //Output what you want the_title(); the_content(); endwhile; }
-
- 2014-07-10
Bienjoué! La solution de GhostOne était ce queje recherchais. Dansma situation,letype depublicationpersonnalisé était «minining_accidents»et lestaxonomiespersonnalisées associées étaient «accident-types» qui avaientplusieurstermesen dessous. Monidée était de créer un widgetpersonnalisépour afficher la liste des articles sous lestermes de cestaxonomiespersonnalisées. Dansmonessai,il a obtenu ce queje voulais. Le repos était épicé. Voicimon code:
function fn_get_list_of_mining_accident_types() { $custom_taxonomy='accident-types'; $custom_terms = get_terms($custom_taxonomy); $str_return='<ul>'; foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array( 'post_type' => 'minining_accidents', 'tax_query' => array( array( 'taxonomy' => $custom_taxonomy, 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); $term_name=$custom_term->name; $term_slug=$custom_term->slug; $term_link=get_term_link($term_slug, $custom_taxonomy); $str_return.='<li><a href="'.$term_link.'">'.$term_name.'</a>'; if($loop->have_posts()) { $str_return.='<ol>'; while($loop->have_posts()) : $loop->the_post(); $str_return.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li> '; endwhile; $str_return.='</ol>'; } $str_return.='</li>'; } $str_return.='</ul>'; return $str_return; }
Oui! Ilexistetoujours une optionpour améliorerencore le code.
Nice one! GhostOne's solution was what I had been looking for. In my situation the custom post type was 'minining_accidents' and custom taxonomies associated with this was 'accident-types' which had multiple terms under it. My idea was to create a custom widget to show list of posts under terms in this custom taxonomies. In my trial run it got what I wanted. Rest was spruce up. Here is my code:
function fn_get_list_of_mining_accident_types() { $custom_taxonomy='accident-types'; $custom_terms = get_terms($custom_taxonomy); $str_return='<ul>'; foreach($custom_terms as $custom_term) { wp_reset_query(); $args = array( 'post_type' => 'minining_accidents', 'tax_query' => array( array( 'taxonomy' => $custom_taxonomy, 'field' => 'slug', 'terms' => $custom_term->slug, ), ), ); $loop = new WP_Query($args); $term_name=$custom_term->name; $term_slug=$custom_term->slug; $term_link=get_term_link($term_slug, $custom_taxonomy); $str_return.='<li><a href="'.$term_link.'">'.$term_name.'</a>'; if($loop->have_posts()) { $str_return.='<ol>'; while($loop->have_posts()) : $loop->the_post(); $str_return.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li> '; endwhile; $str_return.='</ol>'; } $str_return.='</li>'; } $str_return.='</ul>'; return $str_return; }
Yes! There always is an option to further improve the code.
-
- 2020-06-14
C'est une longue solution quej'aiessayée avant d'arriver à cefil. J'espère que cela aidera quelqu'un àmieux comprendre.
<?php // Get list of all taxonomy terms -- In simple categories title $args = array( 'taxonomy' => 'project_category', 'orderby' => 'name', 'order' => 'ASC' ); $cats = get_categories($args); // For every Terms of custom taxonomy get their posts by term_id foreach($cats as $cat) { ?> <a href="<?php echo get_category_link( $cat->term_id ) ?>"> <?php echo $cat->name; ?> <br> <?php // echo $cat->term_id; ?> <br> </a> <?php // Query Arguments $args = array( 'post_type' => 'portfolio', // the post type 'tax_query' => array( array( 'taxonomy' => 'project_category', // the custom vocabulary 'field' => 'term_id', // term_id, slug or name (Define by what you want to search the below term) 'terms' => $cat->term_id, // provide the term slugs ), ), ); // The query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { echo '<h2> List of posts tagged with this tag </h2>'; echo '<ul>'; $html_list_items = ''; while ( $the_query->have_posts() ) { $the_query->the_post(); $html_list_items .= '<li>'; $html_list_items .= '<a href="' . get_permalink() . '">'; $html_list_items .= get_the_title(); $html_list_items .= '</a>'; $html_list_items .= '</li>'; } echo $html_list_items; echo '</ul>'; } else { // no posts found } wp_reset_postdata(); // reset global $post; ?> <?php } ?>
This is long solution i tried before coming to this thread. Hope this may help someone to understand better.
<?php // Get list of all taxonomy terms -- In simple categories title $args = array( 'taxonomy' => 'project_category', 'orderby' => 'name', 'order' => 'ASC' ); $cats = get_categories($args); // For every Terms of custom taxonomy get their posts by term_id foreach($cats as $cat) { ?> <a href="<?php echo get_category_link( $cat->term_id ) ?>"> <?php echo $cat->name; ?> <br> <?php // echo $cat->term_id; ?> <br> </a> <?php // Query Arguments $args = array( 'post_type' => 'portfolio', // the post type 'tax_query' => array( array( 'taxonomy' => 'project_category', // the custom vocabulary 'field' => 'term_id', // term_id, slug or name (Define by what you want to search the below term) 'terms' => $cat->term_id, // provide the term slugs ), ), ); // The query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { echo '<h2> List of posts tagged with this tag </h2>'; echo '<ul>'; $html_list_items = ''; while ( $the_query->have_posts() ) { $the_query->the_post(); $html_list_items .= '<li>'; $html_list_items .= '<a href="' . get_permalink() . '">'; $html_list_items .= get_the_title(); $html_list_items .= '</a>'; $html_list_items .= '</li>'; } echo $html_list_items; echo '</ul>'; } else { // no posts found } wp_reset_postdata(); // reset global $post; ?> <?php } ?>
-
- 2014-07-29
Pour afficher une liste depublicationspersonnalisées àpartir d'unetaxonomiepersonnalisée
$args = array( 'tax_query' => array( array( 'taxonomy' => 'your-custom-taxonomy', 'field' => 'slug', 'terms' => array( 'your-term' ) ), ), 'post_type' => 'your-post-type' ); $loop = new WP_Query($args); if($loop->have_posts()) { $term = $wp_query->queried_object; while($loop->have_posts()) : $loop->the_post(); //Output what you want echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; endwhile; }
Titre
- Élément de liste
- Élément de liste
- Élément de liste
To show a list of custom posts from a custom taxonomy
$args = array( 'tax_query' => array( array( 'taxonomy' => 'your-custom-taxonomy', 'field' => 'slug', 'terms' => array( 'your-term' ) ), ), 'post_type' => 'your-post-type' ); $loop = new WP_Query($args); if($loop->have_posts()) { $term = $wp_query->queried_object; while($loop->have_posts()) : $loop->the_post(); //Output what you want echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; endwhile; }
Title
- List item
- List item
- List item
Est-ilpossible de répertoriertous lesmessages dans untype depublicationpersonnalisé spécifiqueet de les organiseren fonction duterme detaxonomiepersonnalisé qui leurest associé?
Parexemple;
Taxonmy Terme # 1
Type demessage
Type demessage
Type demessage
Terme detaxonomien ° 2
Type demessage
Type demessage
Toute aide seraittrès appréciée.
Merci.