массив 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
Есть идеи, что я делаю не так здесь?
Заранее благодарю вас!
1 answers
Get_the_terms(), вероятно, возвращает значение false.
Сделайте print_r($event_type_term), чтобы увидеть, что у вас в нем.
От: http://codex.wordpress.org/Function_Reference/get_the_terms
Массив объектов терминов об успехе. Значение False, если в данной таксономии не найдено терминов, и объект wp_error, если введена недопустимая таксономия.