wordpress 致命错误:未捕获的错误:sort():参数#1($array)必须是数组类型-遍历Word Press分类

5vf7fwbs  于 2023-10-17  发布在  WordPress
关注(0)|答案(1)|浏览(121)

我有一个分类在Word中称为“职位”,我想通过职位循环,并显示在按字母顺序选择字段的职位,这是我的代码-

<select name="jobTitle" id="jobTitleFilter">
    <option value="" selected="selected">Job Title</option>
    <?php foreach ( get_terms( 'job_title',  array() ) as $job_title ) : ?>
        <?php sort( $job_title ); ?>
        <option value="<?php echo esc_html( $job_title->term_id); ?>"><?php echo esc_html( $job_title->name ); ?></option>
    <?php endforeach; ?>
</select>

这段代码在PHP 7上可以工作,但有错误,但在PHP 8.0.30上我得到了这个致命的错误-
致命错误:未捕获的错误:sort():Argument #1($array)must be of type array,WP_Term givenin template-partner-job-postings.php第26行
在PHP 7的Query Monitor中,我看到了这个错误-
sort()要求参数1为数组,对象给定
我该如何纠正?

s6fujrry

s6fujrry1#

php_sort()需要的是一个数组而不是一个对象,所以我通过对WordPress get_terms()中的数据进行排序来解决这个问题。

<select name="jobTitle" id="jobTitleFilter">
    <option value="" selected="selected">Job Title</option>
    <?php foreach ( get_terms( 'job_title',  ['orderby' => 'name'] ) as $job_title ) : ?>
        <option value="<?php echo esc_html( $job_title->term_id); ?>"><?php echo esc_html( $job_title->name ); ?></option>
    <?php endforeach; ?>
</select>

相关问题