web-dev-qa-db-fra.com

Afficher le contenu du type d'article personnalisé s'il correspond à la catégorie d'article principal

J'ai résolu le problème d'affichage d'un message personnalisé dans un message avec cette solution , cependant, je souhaite filtrer encore plus et afficher uniquement les messages de type de message personnalisé qui correspond à la catégorie du message principal (ou pour être plus précis le slug, mais il n'y a pas de différence dans la solution).

Je reçois la limace du poste principal en utilisant ceci:

$category_main = get_the_category();
$cat_slug = $category_main[0]->slug;
echo $cat_slug; // This is just to see if I got the right output

Je récupère le slug du type de message personnalisé de la même manière, mais c’est au sein d’une boucle qui parcourt les types de messages personnalisés.

$category_course = get_the_category();
$cat_slug_course = $category_course[0]->slug;
echo $cat_slug_course;

Donc, ce que je veux maintenant, c’est d’afficher uniquement les publications du type personnalisé correspondant au slug de la publication originale.

En pseudo-code, cela ressemblerait à quelque chose comme:

If $cat_slug_course is equal to $cat_slug, display all custom type posts with slug $cat_slug_course and none other

C'est la boucle utilisée pour afficher les messages de type personnalisé.

$args = array( 'post_type' => 'Course', 'posts_per_page' => 2 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();

    $category_course = get_the_category();
    $cat_slug_course = $category_course[0]->slug;
    echo $cat_slug_course; // This is just to see if I got the right output
    echo '<br />';    
    the_title();
    echo '<div class="entry-content">';
    the_content();
    echo '</div>';
endwhile; ?>
1
Rvervuurt

Une meilleure solution que celle que vous avez trouvée vous-même serait de ne récupérer que les messages correspondants. En l'état, vous récupérez potentiellement les mauvaises données. Avec votre code (votre solution), que se passe-t-il si les deux articles du jeu de résultats ne correspondent pas ? Vous n'obtenez aucune sortie du tout.

Votre description/code est un peu décousu, alors je devine un peu les choses, et ceci n’a pas été testé, mais je pense que ce que vous voulez, c’est:

$category_main = get_the_category();
$cat_slug = $category_main[0]->slug;
// echo $cat_slug; // This is just to see if I got the right output
$args = array( 
  'post_type' => 'Course', 
  'posts_per_page' => 2,
  'category_name' => $cat_slug,
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) {
  $loop->the_post();

  $category_course = get_the_category();
  $cat_slug_course = $category_course[0]->slug;
  //   echo $cat_slug_course; // This is just to see if I got the right output
  echo '<br />';    
  the_title();
  echo '<div class="entry-content">';
  the_content();
  echo '</div>';
}
2
s_ha_dum

Ok, c'était plus simple que prévu.

<?php if ($cat_slug_course == $cat_slug): ?>
    <div class="landing_title">
        <?php the_title(); ?>
    </div>
        <?php the_content();?>
    </div>
<?php endif; ?>

Le résout. Je ne m'y attendais pas, mais c'est le cas.

0
Rvervuurt