Поддержка Проблемы и решения Ошибка count ($post)

  • Доброго дня! Откопал одну из старых тем для WP.
    Все вроде бы работает, но на странице настроек темы выдается неприятное сообщение:

    Warning: count(): Parameter must be an array or an object that implements Countable in <..>/www/wp-content/themes/sunrise/admin/options-medialibrary-uploader.php on line 203

    Данная ошибка отображается на странице 7 раз с одним и тем же текстом
    Идем в указанную строчку и видим:
    if ( count( $_posts ) ) {
    Насколько мне хватило моих знаний: пытаемся посчитать то, что считать нельзя. Вероятно с течением времени метод такого подсчета успел измениться в отличии от старой темы.
    Ниже представлен весь кусок кода из файла, где используются указанные параметры:

    $query .= ' LIMIT 1';
    			$_posts = $wpdb->get_row( $query );
    
    			// If we've got a post, loop through and get it's ID.
    			if ( count( $_posts ) ) {
    				$_id = $_posts->ID;
    			} else {
    
    				// If no post is present, insert one.
    				// Prepare some additional data to go with the post insertion.
    				$_words = explode( '_', $_token );
    				$_title = join( ' ', $_words );
    				$_title = ucwords( $_title );
    				$_post_data = array( 'post_title' => $_title );
    				$_post_data = array_merge( $_post_data, $_args );
    				$_id = wp_insert_post( $_post_data );
    			}
    		}
    		return $_id;

    И страница целиком если это кому-то нужно: https://yadi.sk/d/3Da89prUuWKjmA

    Помогите исправить ошибку — тема хорошая больно =)

    Благодарю!

    • Тема изменена 4 года, 4 месяца назад пользователем zzzt.
Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Обратиться к автору темы пробовали?

    Тема бесплатная — форум они закрыли. Пытаюсь найти их мейл. Пока не нашел, решил параллельно тут создать вопрос.
    Я просто не могу определить насколько это большая проблема. Может все решается правкой двух строчек в стиле «Да, сейчас так посты никто не считает. Используйте вместо count вот эту функцию» и всё

    Модератор Yuri

    (@yube)

    Попробуйте так
    if ( $_posts and count( $_posts ) ) {
    или просто
    if ( $_posts ) {

    Вероятно с течением времени метод такого подсчета успел измениться в отличии от старой темы.

    Изменилось отношение PHP к мелким огрехам в коде.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Ошибка count ($post)» закрыта для новых ответов.