【问题标题】:Displaying Wordpress category images with category显示带有类别的 Wordpress 类别图像
【发布时间】:2018-04-06 20:51:37
【问题描述】:

我有这段代码:

<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>

这将显示我的自定义帖子类型“短期课程”的类别列表 以下是当前的外观:http://staging.seedcreativeacademy.co.uk/short-courses/

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

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

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

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

<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>

所以我有点糊涂了……

【问题讨论】:

    标签: php wordpress advanced-custom-fields categories


    【解决方案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 标签,因为您已经在一个打开的 &lt;?php 标签内:

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

    【讨论】:

    • 为这个chuuke加油! :) 这似乎在一定程度上有效,它输出 但它似乎在通过 URL 时遇到问题......我需要在课程类型图像之后添加任何内容吗?例如:get_field('course_type_image', 'SOMETHING HERE') - 告诉它 course-type-image 位于 short_courses 自定义帖子类型内?
    • 我认为这样的事情可能会奏效,但它不会...
    • 您使用 WCF 向哪个对象添加了“图像字段”?到一个类别?发帖? get_field 的第二个参数是 $post_id,因此如果您已将自定义字段添加到“short_courses”帖子类型,请确保您在帖子循环 (codex.wordpress.org/The_Loop) 内,或者将帖子 ID 显式传递给 get_field 函数.
    • 对不起,chuuke,我不太明白我需要做什么......我已经在这里取得了一些进展:stackoverflow.com/questions/46955622/… 但我仍然在努力显示图像
    • chuuke - 图像字段被添加到我为我的帖子类型短期课程创建的自定义分类中。自定义分类称为课程类型而不是类别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多