基本上,我需要帮助构建一个适当的数组以作为值传递post__in
基本上,代码必须获得帖子的特征图像only for selected ids. 我需要您的帮助,以正确的方式提取相关数组字符串的值,因为当前代码会给出警告Warning: implode(): Invalid arguments passed in .../..
. 但它仍然显示图像。问题是它显示所有帖子中的图像,而不是images only from posts with selected ids, 如预期的那样。
$sel_ids = $_SESSION[\'selected_ids\'];
global $wpdb;
require_once(\'../../../../wp-load.php\');
$args = array(\'post__in\' => implode( \', \', $sel_ids ), \'post_type\' => \'post\');
$posts = get_posts($args);
foreach ($posts as $post) {
echo get_the_post_thumbnail($post->ID, \'coverimage\');
}
在上面代码块的第一行中,此字符串
$sel_ids
携带所选帖子的ID。什么时候
echoed
给予
Array
. 什么时候
var_dump($sel_ids)
显示
array(2) { [0]=> string(2) "67" [1]=> string(2) "16" }
以及
foreach
给出一个字符串,例如
6716
. 我不需要
foreach
在我的代码中,但提供额外的信息,以便它可以帮助您更好地推断。上面的代码不在模板页面上,而是在单独的页面上。它实际上是一个表单处理器。我需要在这里运行代码,因为我需要获取这些值并稍后通过电子邮件发送它们。所以我加载了WordPress全局文件。会话用于从表单中携带数组值。
更新-@Mamaduka-这里是gmail中电子邮件来源的相关部分
Array<img src="http://xxxxxxxxx.com/wp-content/uploads/2014/04/360.jpg">
最合适的回答,由SO网友:Mamaduka 整理而成
问题是,post_in
仅接受post ID数组和implode()
返回字符串。
下面是固定代码的外观(还添加了一些条件检查):
$sel_ids = $_SESSION[\'selected_ids\'];
/**
* Check, if we have array of Post IDs
*/
if ( ! is_array( $sel_ids ) ) {
return;
}
require_once(\'../../../../wp-load.php\');
$args = array( \'post__in\' => $sel_ids, \'post_type\' => \'post\' );
$posts = get_posts($args);
if ( empty( $posts ) ) {
return;
}
foreach ($posts as $post) {
echo get_the_post_thumbnail($post->ID, \'coverimage\');
}