¿Hay ALGO en esta consulta que sea incompatible con WordPress 2.9.2?

9 feb 2011, 23:36:07
Vistas: 187
Votos: 0

He estado dándole vueltas a esto durante dos días. Todavía no logro entenderlo.

Estoy probando un lanzamiento de tema en múltiples versiones de WordPress usando xampplite en localhost en una PC.

Tengo un problema en WP 2.9.2 que no ocurre en ninguna otra instalación más nueva de WP.

Mira la consulta a continuación. Mientras dejo la línea comentada en su lugar, funciona bien. Sin embargo, cuando descomento la línea, se cae mi servidor Apache de xampplite. ¿WTF?

$the_query = new WP_Query(array(
  'posts_per_page' => 5,
  'offset' => 0, 
  'order' => 'ASC',
  'post__not_in' => get_option("sticky_posts"),
//  'cat' => get_cat_ID('top-menu'),
  ));
print "<p>header.php";exit;

Incluso he intentado codificar manualmente el atributo cat con un número estático:

'cat' => 3

¡Y todavía se cae!

¿Esto es un problema con el código, con WordPress 2.9.2 o con mi configuración de Xamplite? Me parece extraño que funcione en todas las demás versiones más nuevas de WP que tengo configuradas en esta misma máquina.

6
Comentarios

elimina la emocionante coma después de get_cat_ID('top-menu').

Bainternet Bainternet
10 feb 2011 00:04:29

¡Hecho! Sigue fallando :(

Scott B Scott B
10 feb 2011 00:08:35

El fallo de tu servidor podría estar relacionado con la configuración que tienes en tu máquina local. Ver: "Apache HTTP Service ha dejado de funcionar" con WP Query en WordPress 2.9.2

hakre hakre
10 feb 2011 00:18:30

¿El ID del gato para 'top-menu' es 2.2250738585072011e-308 por casualidad? es broma: http://www.theregister.co.uk/2011/01/04/weird_php_dos_vuln/

goldenapples goldenapples
10 feb 2011 00:49:10

@GA: Ese es un artículo interesante, pero puedo codificar el valor a un número de un solo dígito para crear la condición de fallo. En cualquier caso, echo(get_cat_ID('top-menu')) devuelve 3.

Scott B Scott B
10 feb 2011 01:32:03

@hakre: parece más un problema de configuración del servidor que simplemente se ve debilitado por WP2.9.2 de alguna manera.

Scott B Scott B
10 feb 2011 01:32:59
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 2
2

Lo único que veo que podría considerarse cuestionable sintácticamente es que showposts podría reemplazarse con posts_per_page.

9 feb 2011 23:45:42
Comentarios

Gracias por la entrada editor. Funciona bien con cualquiera. El único problema que tiene es cuando está presente el argumento cat. Llevo dos días intentando solucionar esto, ¡argh!

Scott B Scott B
10 feb 2011 00:03:04

El primero, pero realmente estoy un poco desesperado. Parece que WP establecerá $query['posts_per_page'] a $query['showposts'] en la función &get_posts(), tanto en 2.9 como en 3.0 (http://core.trac.wordpress.org/browser/tags/3.0.5/wp-includes/query.php). Creo que esas son todas las variables de consulta listadas en fill_query_vars().

editor editor
10 feb 2011 00:08:08
1

Me doy cuenta de que esto es antiguo ahora, pero puede ayudar a las personas que encuentren esto a través de Google:

Tuve problemas con Apache muriendo cuando ejecutaba código similar dentro de una función llamada por el hook pre_get_posts. El problema era que me faltaba el condicional:

$query->is_main_query()

lo que significaba que estaba trabajando para todas las consultas, no solo para la principal. Agregar eso solucionó el problema para mí. El condicional completo que uso es (luego otro código arriba y abajo de eso:

if ( ! is_category() || ! $query->is_main_query() || ! is_a( $query, 'WP_Query' ) )
    return;
30 jun 2012 15:00:17
Comentarios

is_main_query() ni siquiera existía en la versión 2.9.2. Eso no puede ser una respuesta válida.

fuxia fuxia
30 jun 2012 16:13:52