显示图像的代码-图像会多次显示

时间:2011-11-28 作者:Corbula

在我的类别上。php页面我有一个带有标题和描述的类别列表。

Here\'s the code:

<?php 
$cat_id = get_query_var(\'cat\');
$catlist = get_categories(\'hide_empty=0&child_of=\' . $cat_id);
echo "<ul>";

foreach($catlist as $categories_item)
{
echo \'<h1><a href="\' . get_category_link( $categories_item->term_id ) . \'" title="\' . sprintf( __( "View all products in %s" ), $categories_item->name ) . \'" \' . \'>\' . $categories_item->name.\'</a> </h1> \';
    echo \'<p>\'. $categories_item->description . \'</p>\';
}
echo "</ul>";
}
?>
此代码输出当前类别的子类别。例如,如果我在一个名为“Products”的类别页面上,则会显示该页面的子类别。

我还使用了一个名为Taxonomy Image, 因此,我可以将图像指定给类别。

Here\'s the code that shows the image:

$terms = apply_filters( \'taxonomy-images-get-terms\', \'\' );
if ( ! empty( $terms ) ) {

    foreach( (array) $terms as $term ) {
        print \'<a href="\' . esc_url( get_term_link( $term, $term->taxonomy ) ) . \'">\' . wp_get_attachment_image( $term->image_id, \'detail\' );
    }

}
问题是我想要这样的标记。

<h1> category title
    <p> category description
       <img> category image
我有h1和p,但如果我想在类别列表中显示图像,则显示图像的代码需要放在显示类别的代码中。

这就是问题所在,因为所有类别图像都会显示在每个类别下。因此,在第一类标题和描述下,所有图像都将显示,然后在第二类下显示相同的图像,依此类推。

如何组合代码以获得所需的标记,并仅显示每个类别的正确图像,而不是所有图像?

我很感激这可能不是很清楚,但我已经尽力解释清楚了。

谢谢

2 个回复
最合适的回答,由SO网友:ZweiBlumen 整理而成

类似的方法可能会奏效:

<?php 
$cat_id = get_query_var(\'cat\');
$catlist = get_categories(\'hide_empty=0&child_of=\' . $cat_id);
echo "<ul>";

foreach($catlist as $categories_item)
{
echo \'<h1><a href="\' . get_category_link( $categories_item->term_id ) . \'" title="\' . sprintf( __( "View all products in %s" ), $categories_item->name ) . \'" \' . \'>\' . $categories_item->name.\'</a> </h1> \';
    echo \'<p>\'. $categories_item->description;

    $terms = apply_filters( \'taxonomy-images-get-terms\', \'\' );
    if ( ! empty( $terms ) ) {

      foreach( (array) $terms as $term ) {
        if($term->term_id == $categories_item->term_id) {
           print \'<a href="\' . esc_url( get_term_link( $term, $term->taxonomy ) ) . \'">\' . wp_get_attachment_image( $term->image_id, \'detail\' );

        }
    }

}
    echo \'</p>\';
}
echo "</ul>";
}
?>
代码的要点是仅当图像的术语id与类别的术语id匹配时才显示图像。这不是最有效的解决方案,但我不清楚您使用的具体插件以及您有哪些选项可以获取特定术语的图像。

SO网友:Ciprian

你为什么不打电话给<ul></ul> 在foreach之外。希望我做对了。不是专家。

<?php 
$cat_id = get_query_var(\'cat\');
$catlist = get_categories(\'hide_empty=0&child_of=\' . $cat_id); 
?>

<?php echo "<ul>"; ?>

<?php
foreach($catlist as $categories_item)
{
echo \'<h1><a href="\' . get_category_link( $categories_item->term_id ) . \'" title="\' . sprintf( __( "View all products in %s" ), $categories_item->name ) . \'" \' . \'>\' . $categories_item->name.\'</a> </h1> \';
echo \'<p>\'. $categories_item->description . \'</p>\';
<?php } ?>
your image can go here
<?php echo "</ul>"; ?>

结束

相关推荐

包含php:/usr/Share/PEAR时出错

我正在尝试使用一个旧插件http://wordpress.org/extend/plugins/wp-ecards/ (我不是插件作者)当我试图在网站上查看电子卡时,在php错误日志和一个空白屏幕中出现此错误: Failed opening \'\' for inclusion (include_path=\'.:/usr/share/php:/usr/share/pear\') in /home/public_html/demo/wp-content/plugins/wp-ecards/ft-