下面的第一行代码携带通过表单捕获的post ID。然后,代码的其余部分有助于提取相应帖子ID的帖子缩略图
$sel_ids = $_SESSION[\'selected_ids\'];
if ( ! is_array( $sel_ids ) ) { //the check to prove that $sel_ids is a valid array
return;
}
require_once(\'../../../../wp-load.php\');
$args = array( \'post__in\' => $sel_ids, \'post_type\' => \'post\' );
$posts = get_posts($args);
foreach ($posts as $post) {
echo get_the_post_thumbnail($post->ID, \'coverimage\');
}
缩略图显示良好,但在缩略图之前,代码还输出一个单词Array
这绝对是不需要的。
我试着一行一行地评论,以找出真正的罪魁祸首是哪一行。所以我发现这条线$args = array( \'post__in\' => $sel_ids, \'post_type\' => \'post\' );
生成不需要的字符串Array
. 我猜是var$sel_ids
需要一些工作。
FYI A.var_dump($sel_ids)
印刷品array(2) { [0]=> string(2) "67" [1]=> string(2) "16" }
. 我也试过密码explode(\',\', $sel_ids);
从answer here 但它会打印一条警告Warning: explode() expects parameter 2 to be string
. 我认为这很有意义,因为我知道$sel\\u id是一个数组,但为什么它要打印单词呢Array
, 古怪的
<小时>FYI 因为代码是html电子邮件的一部分。以下是gmail中电子邮件来源的相关部分。以防万一,这有助于更好地推断问题。
Array<img src="http://xxxxxxxxx.com/wp-content/uploads/2014/04/360.jpg">
<小时>
UPDATE : 测试代码
<pre><?php print_r($args);?></pre>
输出以下结果。我怀疑这个词
Array
正在从打印
[post__in] => Array
. 如何卸下或更换此部件。
Array
(
[post__in] => Array
(
[0] => 67
[1] => 16
)
[post_type] => post
)
最合适的回答,由SO网友:J.D. 整理而成
Array
是PHP在将数组转换为字符串时表示数组的方式:
echo array( /* anything in here */ ); // output: Array
幸运的是,PHP并不喜欢将数组转换为字符串,因此会出现如下错误:
PHP注意事项:数组到字符串在/somefile中的转换。php在线345
通常默认情况下,这些PHP通知会被静音。要查看它们,应使用启用WordPress调试模式WP_DEBUG
. 坦白地说,你应该WP_DEBUG
在使用WordPress开发内容时启用:-)。
启用调试模式后,运行代码并check the debug.log
. 您应该看到PHP中的数组到字符串转换通知,它将告诉您这是从哪里来的。
像@Sisir,我看不出你的代码有任何问题。我怀疑数组是由一个连接到调用的某个操作或筛选器的函数输出的get_the_post_thumbnail()
: \'post_thumbnail_size\'
, \'begin_fetch_post_thumbnail_html\'
, \'end_fetch_post_thumbnail_html\'
, 和\'post_thumbnail_html\'
.