警告:urlencode()要求参数1为中给出的字符串和数组,而不是所需的输出

时间:2014-09-10 作者:PHP Learner

警告:urlencode()要求参数1为字符串,数组在中给定D:\\xamppp\\htdocs\\sample\\wp-includes\\formatting.php 在线3690

当我试图category_namequery_post,

<?php
   $args=query_posts(
    array(
     \'posts_per_page\' => -1,
   \'category_name\' =>array(\'Breaking News Stories\', \'Call-out\', \'Featured Story\', \'Standard Stories\')
  ));
 ?>
我收到了上面的警告formatting.php 文件第3690行的代码如下:

<?php
   function wp_basename( $path, $suffix = \'\' )
     {
      return urldecode( basename( str_replace( array( \'%2F\', \'%5C\' ), \'/\', urlencode( $path ) ), $suffix ) );
     }
?>

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

首先,不要使用query_posts. 宁可使用WP_Query 构建自定义查询的首选方式

您还使用category_name 参数错误。如果你看看WP_Query 文件,it声明

category_name (string) - 使用类别slug(非名称)。

去看看文档中类别参数下给出的示例

EDIT

你需要这样做

\'category_name\' => \'SLUG OF Breaking News Stories, SLUG OF Call-out, SLUG OF Featured Story, SLUG OF Standard Stories\'

SO网友:dj.cowan

彼得·古森的回答很有帮助。有一个类似的问题,通过内爆我们的阵列得到了修复。

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

参考号:http://php.net/manual/en/function.implode.php

SO网友:Domain

这表示变量$path 是数组()print_r($path) 查看它包含哪些值例如,如果显示类似的内容Array([0] => path/to/file) , 您需要使用urlencode($path[0]) 而不是urlencode($path).

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。