¿Qué está causando este error? "Advertencia: argumento inválido"

2

Necesito ayuda urgente para resolver esto, por favor, he estado trabajando en un tema de WordPress localmente sin problemas, y ahora que lo he cargado en el servidor en vivo recibo este error:

  

Advertencia: se proporcionó un argumento no válido para foreach () en   /homepages/42/d357924500/htdocs/wp-includes/post.php   en la línea 1011

El código correspondiente está relacionado con la función register_post_type :

foreach ( $args->taxonomies as $taxonomy ) {
        register_taxonomy_for_object_type( $taxonomy, $post_type );
    }

¿Podría ser esto debido a un error en mi código register_post_type o register_taxonomy ? El error se muestra tanto en el extremo frontal como en el lado del administrador (también se muestra en los cuadros de opciones de widgets cuando intento actualizar los widgets; los cambios no se guardan).

Todavía no sé mucho sobre PHP (aún estoy aprendiendo), pero sé lo suficiente como para administrar algunas personalizaciones de WordPress. Ambas instalaciones de WordPress usan la versión 3.1. Cualquier ayuda en este tema es muy apreciada.

- ACTUALIZACIÓN -

Intenté crear un nuevo término para mi taxonomía personalizada de "tipo" y obtuve este error en un cuadro de error rojo:

  

* * Advertencia: se proporcionó un argumento no válido para foreach () en   /homepages/42/d357924500/htdocs/wp-includes/post.php   en la línea 1011

     

Advertencia: no se puede modificar la información del encabezado; los encabezados ya han sido enviados por   (la salida comenzó en   /homepages/42/d357924500/htdocs/wp-includes/post.php:1011)   en   /homepages/42/d357924500/htdocs/wp-includes/class-wp-ajax-response.php   en la línea 129

     

Administración

     

administration0◆◆>Administration

     

administration0◆◆>**

El término taxonomía obviamente no fue guardado.

    
pregunta Skymaiden 28.03.2011 - 11:14

4 respuestas

5

Se encontró con el mismo problema. @Patriek es correcto El argumento de 'taxonomías' debe ser una matriz, de ahí el plural. P.ej.

$args = array( 'taxonomies' => array( 'myTaxonomy' ) );

Esto corrige el error.

Solo noté esto al mover un sitio a otro servidor, lo que me lleva a pensar que la función register_post_type () requiere algunas configuraciones de PHP no habilitadas en el host remoto. register_globals está habilitado ... ¿alguna idea de qué es lo que hace que este problema dependa del servidor?

    
respondido por el jmeho 01.04.2011 - 00:39
2

Supongo que su taxonomía args- > está vacía, no es válida o no existe. Sin más código es difícil decir por qué. ¿Cargó todo el código de su host local al servidor de producción?

También a veces esto sucede porque la taxonomía se crea después del tipo de registro_post, pero luego el código localhost dará el mismo error. Por lo general llamo taxonomes como este.

function initialize_taxonomy() {
    register_taxonomy( 'tax_name', 'tax_object', array(
                        'hierarchical' => false,
                        'query_var' => false,
                        'rewrite' => true,
                        'public' => true,
                        'show_ui' => true,
                ) );  
}
add_action( 'init', 'initialize_taxonomy', 0 );
    
respondido por el Patriek 28.03.2011 - 11:25
1

La variable $ args, ¿de dónde viene? Tal vez tenga register_globals_on en su máquina local, pero está apagado en el servidor en php.ini.

    
respondido por el petermolnar 28.03.2011 - 11:25
1

Por lo tanto, el error fue causado por mi registro de taxonomía personalizada. Logré que la advertencia desapareciera cortándola por completo. Al ver que esto parecía solucionar el problema, hice un nuevo register_taxonomy (usando casi exactamente el mismo código, pero con el nombre cambiado como lo sugirió Patriek), y la advertencia no ha vuelto.

Muchas gracias a los que intentaron ayudarme. :-)

    
respondido por el Skymaiden 28.03.2011 - 13:44

Lea otras preguntas en las etiquetas