Wordpress在for循环中使用If语句

时间:2018-01-09 16:26:41

标签: php wordpress

我需要使用if语句来检测当前正在查看的类别页面是否来自从wordpress中提取的类别列表。我不能使用静态列表,因为这个列表可能会随着管理员改变而改变。

<?php 
     $args = array(
         'orderby' => 'name',
         'parent' => 8,
         'taxonomy' => 'category'
     );
     $categories = get_categories( $args );
     foreach ( $categories as $category1 ) { ?>

     <?php if (is_category(<?php echo get_cat_name("$category1->term_id;"); ?>)) : ?>
         <p>This is the text to describe category A</p>
     <?php else : ?>
         <p>This is the text to describe category B</p>
     <?php endif; ?>  
}?>

这是我到目前为止,如果我使用静态列表,但是当我尝试使用get_cat_name获取is类别时,它会产生错误500。

感谢。

1 个答案:

答案 0 :(得分:3)

由于此行,您收到500错误:

<?php if (is_category(<?php echo get_cat_name("$category1->term_id;"); ?>)) : ?>

应该只是:

<?php if (is_category(get_cat_name($category1->term_id))) : ?>

echo用于将字符串发送到输出缓冲区(换句话说,将文本输出到浏览器)。您不需要echo值到另一个函数中。此外,将值传递给函数时,可以直接发送变量($category1->term_id)。

当您尚未关闭之前的代码时,您也不需要打开<?php代码。