Instruction PHP if à l’intérieur de foreach pour vérifier les pages WordPress

Publié par Jean-Michel le

J’ai une instruction foreach qui parcourt toutes les pages d’une installation WordPress et les répertorie dans une div (en utilisant la fonction get_pages()).

Il ressemble actuellement à ceci :

<?php
  $pages = get_pages();
  foreach ( $pages as $page ) {
    $linkPage = '<a class="order" href="' . get_page_link( $page->ID ) . '">';
    $linkPage .= $page->post_title;
    $linkPage .= '</a>';
    echo $linkPage;
  }
?>

Ce que je dois faire maintenant est d’ajouter une instruction if qui insère la chaîne  » current  » après class= »order… si le lien est celui de la page actuelle.

Cela peut sembler une question idiote, mais je suis un développeur front-end avec peu d’expérience en PHP, et chaque fois que j’essayais d’ajouter le si j’avais une erreur de syntaxe, prétendant qu’il y avait une instruction if inattendue.

J’espère que j’ai été clair. Si une aide peut être fournie, elle sera très appréciée.

Solution n°1 trouvée

Essayez ce Code :

<?php
//get id of your current page
$post_id = get_the_ID();
$pages = get_pages();
foreach ( $pages as $page ) {
//Condition statement to add the class current
$current = $post_id == $page->ID ? 'current' : '';
$linkPage = '<a class="order '.$current.'" href="' . get_page_link(   $page->ID ) . '">';
$linkPage .= $page->post_title;
$linkPage .= '</a> <br> ';
echo $linkPage;
}
?>

J’espère que ceci vous aidera…

Solution n°2 trouvée

<?php
  //get id of your current page
  $post_id = $post[0]->ID;
  $pages = get_pages();
  foreach ( $pages as $page ) {
    $current = $post_id == $page->ID ? ' current' : '';
    $linkPage = '<a class="order '.$current.'" href="' . get_page_link( $page->ID ) . '">';
    $linkPage .= $page->post_title;
    $linkPage .= '</a>';
    echo $linkPage;
  }
?>

Vérifiez ceci, je ne sais pas si cela $post_id = $post[0]->IDfonctionne dans votre version wp, mais la logique de l’instruction if est correcte et fonctionnera. Essayez de faire écho $post_idet $currentsi quelque chose ne va pas.

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *