我有一个名为$ array_all;
的数组此数组总是有3个可能的值:
我在foreach循环中从数组创建了一个字符串,并在结尾处连接了一个逗号。
所以,现在我有一个很好的字符串,它按照应有的方式输出确切的值。
1,2,3,我可以从浏览器中复制此输出并将其插入我的wordpress功能,一切都完美显示。
当我直接在wordpress函数中插入这个字符串变量时会出现问题,它会失败。
有人有什么想法吗?
以下代码:
<?php
$faux_array = array();
$faux_array_all;
if($five_loans != ''):
$faux_array[] = "781";
endif;
if($logbook_loans != ''):
$faux_array[] = "797";
endif;
if($easy_money != ''):
$faux_array[] = "803";
endif;
foreach($faux_array as $faux_array_value):
$faux_array_all .= $faux_array_value . ',';
endforeach;
echo $faux_array_all;
$args = array
(
'posts_per_page' => 10,
'post_type' => 'lender',
'order' => 'ASC',
'orderby' => 'date',
'post__in' => array($faux_array_all)
);
?>
答案 0 :(得分:3)
Mmh for one,你可以通过以下方式避免循环:
$faux_array_all = implode(',', $faux_array);
这也将解决尾随逗号问题。
另一方面,您将数组传递给只包含一个元素(字符串)的post__in
。我想你真正想要的是
'post__in' => $faux_array
因为$faux_array
已经是一个带ID的数组
阅读Post & Page Parameters,您可以看到需要将帖子ID数组传递给该函数,而不是一个字符串值的数组:
- 'post__in'=&gt; array(5,12,2,14,7) - 包含,允许您指定要检索的帖子ID
答案 1 :(得分:1)
'post__in' => $faux_array
试试这个,如果它不起作用,请发布你手动制作的代码。
编辑。现在检查一下。
答案 2 :(得分:1)
您需要删除尾随逗号
foreach($faux_array as $faux_array_value):
$faux_array_all .= $faux_array_value . ',';
endforeach;
if (substr($faux_array_all)-1,1) == ",") {
$faux_array_all = substr($faux_array_all,0,-1);
}