Errore: urlencode() si aspetta una stringa come parametro 1, ma viene fornito un array e non si ottiene l'output desiderato

10 set 2014, 08:48:55
Visualizzazioni: 15.6K
Voti: 2

Warning: urlencode() expects parameter 1 to be string, array given in D:\xamppp\htdocs\sample\wp-includes\formatting.php on line 3690

Quando provo a passare category_name in query_post,

<?php
   $args=query_posts(
    array(
     'posts_per_page' => -1,
   'category_name' =>array('Breaking News Stories', 'Call-out', 'Featured Story', 'Standard Stories')
  ));
 ?>

Ottengo l'errore sopra nel file formatting.php. La riga 3690 contiene questo codice:

<?php
   function wp_basename( $path, $suffix = '' )
     {
      return urldecode( basename( str_replace( array( '%2F', '%5C' ), '/', urlencode( $path ) ), $suffix ) );
     }
?>
0
Tutte le risposte alla domanda 3
0

Prima di tutto, non usare mai query_posts. Piuttosto utilizza WP_Query per costruire la tua query personalizzata, che è il metodo preferito

Stai anche usando il parametro category_name in modo sbagliato. Se guardi la documentazione di WP_Query, dice:

category_name (string) - usa lo slug della categoria (NON il nome).

Vai a vedere gli esempi forniti nella documentazione sotto i parametri delle categorie

MODIFICA

Devi fare qualcosa del genere

'category_name' => 'SLUG-DI Breaking News Stories, SLUG-DI Call-out, SLUG-DI Featured Story, SLUG-DI Standard Stories'
10 set 2014 09:14:26
0

Risposta molto utile di Pieter Goosen. Avevo un problema simile che è stato risolto concatenando il nostro array.

'category_name' => $my_array ? implode( ',', $my_array ) : '',

rif: http://php.net/manual/en/function.implode.php

15 ott 2015 06:02:49
1
  • Questo significa che la variabile $path è un array().
  • Devi estrarre solo il percorso (un valore stringa) da esso.
  • Puoi usare print_r($path) per vedere quali valori contiene.

Ad esempio, se mostra qualcosa come Array([0] => percorso/al/file), dovrai usare urlencode($path[0]) invece di urlencode($path).

10 set 2014 09:16:52
Commenti

Quel pezzo di codice è una funzione core. L'uso incorretto di category_name sta causando l'errore. L'errore è "incorrettamente" riferito a quel file specifico che l'OP ha indicato

Pieter Goosen Pieter Goosen
10 set 2014 09:21:47