Comment le code ci-dessous (qui est dans une boucle foreach) retournent parfois quelque chose et revenir parfois rien quand il est passé les mêmes variables:php opérateurs logiques
$term_id = 76;
$term_parent = 75;
if($term_id != 114 && $term_id != 115 && $term_parent != 83){
$term_link_content = 'something';
} else {
$term_link_content = 'nothing';
}
- Sur la base des réponses à ce jour, le code complet est inférieure à. Je suis fondamentalement après le premier terme qui n'est pas égal à l'un des identifiants énumérés. Et j'ai vérifié la boucle en produisant $ term_id et $ term_parent pour différents messages qui ont les mêmes termes, donc je peux voir que l'instruction if est passée les mêmes valeurs mais parfois la variable $ term_link_content a du contenu et d'autres fois elle est vide .
$posts = get_posts('post_type=products&product_categories=Best Sellers');
foreach($posts as $post){
$post_ID = $post->ID;
$terms = get_the_terms($post_ID, "product_categories");
$i = 0;
foreach($terms as $term){
$term_id = $term->term_id;
$term_parent = $term->parent;
$term_name = $term->name;
$term_slug = $term->slug;
if($term_id != 114 && $term_id != 115 && $term_parent != 83){
// only get the first
if(++$i > 1) break;
$term_text = $term_name;
$term_link = $url.'/shop/'.$term_slug;
$term_link_content = '<span class="term_text"><a class="'.$card_colour.'" href="'.$term_link.'">'.$term_text.'</a></span>';
} else { $term_link_content = ''; }
}
}
Ce ne sera pas. Aussi simple que cela. Quelque chose en dehors de ce code se passe. – Wrikken
Ce que vous montrez ci-dessus ne produira jamais des résultats variables. Le problème doit être ailleurs –
Il devrait toujours retourner quelque chose en fonction de ce que vous avez écrit. Sinon, quelque chose d'autre se passe. Post plus de code? –