Error: PHP Warning: count(): Parameter must be an array or an object that implements Countable in

4
28447

Después de actualizar la versión de PHP a 7.2 en mi servidor con configuración LEMP, comencé a notar unos errores en un sitio WordPress, indicando un problema en el archivo post-template.php en la linea 284.

  • PHP Warning: count(): Parameter must be an array or an object that implements Countable in…
  • PHP 7.2: Warning: count(): Parameter must be an array or an object that implements Countable in…
  • post-template.php on line 284

Correción

Corregir este error es muy sencillo, solo debemos editar el archivo post-template.php

/var/www/miDominio.com/wp-includes/post-template.php

Linea: 284 – Se debe de agregar el if ( is_array( $pages ) ) { para omitir si no hay páginas en el array.

Recuerda respaldar antes de hacer el cambio.

if ( is_array( $pages ) ) {
  if ( $page > count( $pages ) ) // if the requested page doesn't exist
    $page = count( $pages ); // give them the highest numbered page that DOES exist
} else { 	
  $page = 0;
}

En algunos casos dependiento de la configuración de tu servidor, es probable que debas reiniciar los servicios correspondientes.

4 COMMENTS

  1. Perfecto!

    En mi caso el error estaba en la línea 1447 y hacía referencia al código:
    ————————————————-
    if ( ! count( $wp_settings_errors ) )
    return array();
    ————————————————-

    Pero la solución me sirvió igualmente, quedando mi código corregido así:
    ————————————————-
    if ( is_array( $pages ) ) {
    if ( ! count( $wp_settings_errors ) )
    return array();
    } else {
    $page = 0;
    }
    ————————————————-

    Muchas gracias!

    • Si, de hecho este error puede aparecer en varios lugares, también dependiendo del template o versiones del wp.
      Que bueno que te sirviera y gracias por compartir otra solución.

LEAVE A REPLY

Please enter your comment!
Please enter your name here