массив pop() ожидает массив, логический, заданный для термина типа события $ ->slug


У меня есть следующая функция, которую я написал...

add_filter('post_type_link', 'events_permalink_structure', 10, 4);

function events_permalink_structure($post_link, $post, $leavename, $sample) {
    if ( false !== strpos( $post_link, '%event_type%' ) ) {
        $event_type_term = get_the_terms( $post->ID, 'event_type' );
        $post_link = str_replace( '%event_type%', array_pop( $event_type_term )->slug, $post_link );
    }
    return $post_link;
}

При создании нового поста я получаю следующие предупреждения в бэкэнде...

Предупреждение: array_pop() ожидает, что параметр 1 будет массивом, логическим значением, заданным в /Users/my/htdocs/wr/wp-content/themes/wr/functions.php в строке 168

Примечание: Попытка получить свойство не-объекта в /Users/my/htdocs/wr/wp-content/themes/wr/functions.php в строке 168

Есть идеи, что я делаю не так здесь?

Заранее благодарю вас!

Author: mathiregister, 2012-08-02

1 answers

Get_the_terms(), вероятно, возвращает значение false.

Сделайте print_r($event_type_term), чтобы увидеть, что у вас в нем.

От: http://codex.wordpress.org/Function_Reference/get_the_terms

Массив объектов терминов об успехе. Значение False, если в данной таксономии не найдено терминов, и объект wp_error, если введена недопустимая таксономия.

 4
Author: RRikesh, 2012-08-02 07:26:21