显示带有类别的Wordpress类别图像

时间:2017-10-25 16:48:36

标签: php wordpress advanced-custom-fields categories

我有这段代码:

<div class="wrap sc-cat-container">

        <?php
            $customPostTaxonomies = get_object_taxonomies('short_courses');

            if(count($customPostTaxonomies) > 0)
            {
                 foreach($customPostTaxonomies as $tax)
                 {
                     $args = array(
                          'orderby' => 'name',
                          'show_count' => 0,
                          'pad_counts' => 0,
                          'hierarchical' => 1,
                          'taxonomy' => $tax,
                          'title_li' => '',
                          'hide_empty' => FALSE
                          );

                        $categories = get_categories( $args );
                        foreach ( $categories as $category ) {
                            echo '
                            <div class="one-half sc-cat-items">
                                <h2>
                                    <a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a>
                                </h2>

                            </div>';
                        }



                 }
            }
        ?>

    </div>

这会显示我的自定义帖子类型&#39;短期课程&#39;的类别列表。以下是目前的展示方式:http://staging.seedcreativeacademy.co.uk/short-courses/

这很棒,工作正常,但我也想为我的类别添加图片,我看起来像这样:

enter image description here

我有高级自定义字段,我在其中创建了一个图像字段,因此我现在可以为每个类别分配图像。到现在为止还挺好!

当我尝试在上面的代码中显示图像时出现了主要问题......

这是在任何正常情况下显示图像的代码:

<img src="<?php the_field('course_type_image'); ?>">

但是我想我需要将它添加到上面的代码中...所以我想出了这个但是它没有工作,因为我不认为我可以在另一个PHP标签中放入一个php标签!?

<div class="wrap sc-cat-container">

        <?php
            $customPostTaxonomies = get_object_taxonomies('short_courses');

            if(count($customPostTaxonomies) > 0)
            {
                 foreach($customPostTaxonomies as $tax)
                 {
                     $args = array(
                          'orderby' => 'name',
                          'show_count' => 0,
                          'pad_counts' => 0,
                          'hierarchical' => 1,
                          'taxonomy' => $tax,
                          'title_li' => '',
                          'hide_empty' => FALSE
                          );

                        $categories = get_categories( $args );
                        foreach ( $categories as $category ) {
                            echo '
                            <div class="one-half sc-cat-items">
                                <img src="<?php the_field('course_type_image'); ?>">
                                <h2>
                                    <a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a>
                                </h2>
                            </div>';
                        }

                 }
            }
        ?>

    </div>

所以我有点困惑......

1 个答案:

答案 0 :(得分:1)

您正在尝试回显一个字符串,但是在您的字符串中,您正在调用一个函数,该函数本身就是回声而不是返回一个字符串:

echo '
<div class="one-half sc-cat-items">
    <img src="<?php the_field('course_type_image'); ?>">
    <h2>
        <a href="' . get_category_link( $category->term_id ) 
                    . '">' . $category->name . '</a>
    </h2>
</div>';

因此,当尝试调用字符串中的函数the_field()进行回声时,它会尝试再次回显。

您需要使用get_field()函数返回字段的值。

此外,删除img源代码行中的php标记,因为您已经在开放的<?php标记内:

'<img src="' . get_field('course_type_image') . '">'