web-dev-qa-db-fra.com

shortcode pour afficher les types de publication personnalisés par catégorie

J'essaie de créer une liste de mes types d'articles séparés par catégorie personnalisée

c'est à dire

Tax
 Cpt2
 cpt3
Tax2
 Cpt1
 Cpt4
Tax3
 Cpt5

J'espérais faire cela via un shortcode, mais je continuais à avoir une erreur de fin de fichier. Je manque définitivement quelque chose. Puis-je seulement exécuter ce code depuis une page d'archive?

Voici mon code

function dhp_performersbycat() {
  //start by fetching the terms for the performer_category taxonomy
  $terms = get_terms( 'performer_category', array(
        'orderby'    => 'count',
        'hide_empty' => 0
    ) );
  $catlist = '';
  // now run a query for each term
  foreach( $terms as $term ) {

    // Define the query
    $args = array(
      'post_type' => 'dhp_performers',
      'performer_category' => $term->slug
    );
    $query = new WP_Query( $args );

      $catlist .= '<div class="performercatlist"><h1>' . $term->name . '</h1>';

      // Start the Loop
      while ( $query->have_posts() ) : $query->the_post(); ?>

        $catlist .= '<h2>'.the_title().'</h2>';
        $i++;
      endwhile;

      // use reset postdata to restore orginal query
      wp_reset_postdata();
      $catlist .= '</div>'; 
  }
  return $catlist;
}
1
rudtek

Voici une partie de votre code qui peut provoquer une erreur:

$catlist .= '<h2>'.the_title().'</h2>';

Essayez de remplacer par

$catlist .= '<h2>'.get_the_title().'</h2>';

Explication: the_title () renvoie le titre du message. Mais dans votre cas, vous l'utilisez dans une fonction qui renverra la valeur. Vous devez donc utiliser get_the_title () . Merci.

Note: il y a aussi une balise php fermée juste avant cette ligne qui n'est jamais ouverte à nouveau. Cela a sûrement causé l'erreur.

1
Sabbir Hasan