C'è QUALCOSA in questa query che è incompatibile con WordPress 2.9.2?

9 feb 2011, 23:36:07
Visualizzazioni: 187
Voti: 0

Sto cercando di risolvere questo problema da due giorni. Ancora non riesco a capirlo.

Sto testando il rilascio di un tema in diverse versioni di WordPress utilizzando xampplite su localhost su un PC.

Ho un problema su WP 2.9.2 che non si verifica in nessuna altra installazione più recente di WP.

Dai un'occhiata alla query qui sotto. Finché lascio la riga commentata, funziona bene. Tuttavia, quando decommento la riga, fa crashare il mio server Apache 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;

Ho persino provato a hardcodare l'attributo cat con un numero statico:

'cat' => 3

Crasha comunque!

È un problema del codice, di wordpress 2.9.2 o del mio setup Xamplite? Sembra strano che funzioni in tutte le altre versioni più recenti di WP che ho configurato su questa stessa macchina.

6
Commenti

rimuovi l'eccitante virgola dopo get_cat_ID('top-menu').

Bainternet Bainternet
10 feb 2011 00:04:29

Fatto! Continua a bloccarsi :(

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

Il blocco del tuo server potrebbe essere correlato alla configurazione che hai in esecuzione sulla tua macchina locale. Vedi: "Apache HTTP Service has stopped working" con WP Query in WordPress 2.9.2

hakre hakre
10 feb 2011 00:18:30

L'ID del gatto per 'top-menu' è per caso 2.2250738585072011e-308? Scherzo: http://www.theregister.co.uk/2011/01/04/weird_php_dos_vuln/

goldenapples goldenapples
10 feb 2011 00:49:10

@GA: È un articolo interessante, ma posso hardcodare il valore con un numero a una sola cifra per creare la condizione di crash. In ogni caso, echo(get_cat_ID('top-menu')) restituisce 3.

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

@hakre: sembra sempre più un problema di configurazione del server che viene solo indebolito da WP2.9.2 in qualche modo.

Scott B Scott B
10 feb 2011 01:32:59
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 2
2

L'unica cosa che vedo come potenzialmente discutibile dal punto di vista sintattico è che showposts potrebbe essere sostituito con posts_per_page.

9 feb 2011 23:45:42
Commenti

Grazie per l'input editor. Funziona bene con entrambi. L'unico problema che ha è quando è presente l'argomento cat. Sto bruciando due giorni per rintracciare questo problema, argggh!

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

Il primo, ma in realtà sto un po' cercando di capire. Sembra che WP imposterà $query['posts_per_page'] su $query['showposts'] nella funzione &get_posts(), sia in 2.9 che in 3.0 (http://core.trac.wordpress.org/browser/tags/3.0.5/wp-includes/query.php). Penso che queste siano tutte le variabili di query elencate in fill_query_vars().

editor editor
10 feb 2011 00:08:08
1

Mi rendo conto che sia vecchio ora, ma questo potrebbe aiutare le persone che lo trovano tramite Google:

Ho avuto problemi con Apache che moriva quando eseguivo codice simile all'interno di una funzione chiamata dall'hook pre_get_posts. Il problema era che mi mancava il condizionale:

$query->is_main_query()

il che significa che eseguiva il lavoro per tutte le query, non solo per quella principale. Aggiungerlo ha risolto il problema per me. Il condizionale completo che uso è (poi altro codice sopra sotto quello:

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

is_main_query() non esisteva nemmeno nella versione 2.9.2. Quella non può essere una risposta valida.

fuxia fuxia
30 giu 2012 16:13:52