如何将作为数组的数据库选项输出到GET_POSTS数组中?

时间:2016-05-25 作者:markratledge

这一定很简单,但我很困惑。我可能是在倒退。

如何将作为数组的数据库选项输出到get\\u posts数组中

我在数据库中有一个选项,它以数组格式“12345678”存储一些post ID。我可以用

$options = get_option( \'pu_theme_options\' );
$newspostids = $options[\'pu_textbox\'];
echo $newspostids;
所以我知道我得到了输出“12345678”。数据库“选项”只是文本,从主题选项中的表单字段保存。

我需要做的是将该选项中的数据get_posts 数组,以便我可以按ID显示帖子。

我需要的是get_posts 要像这样工作:

$news = get_posts( array( 
            \'post_type\' => \'post\', 
            \'post__in\'=> array(1234,5678)
            ) );
显然,这是行不通的,将变量直接放入数组并期望它输出“12345678”:

$news = get_posts( array( 
            \'post_type\' => \'post\', 
            \'post__in\'=> array($newspostids)
            ) );
那么这应该怎么做呢?

2 个回复
SO网友:birgire

你可以使用wp_parse_id_list() 清理以逗号分隔的帖子ID列表。定义如下:

function wp_parse_id_list( $list ) {
    if ( !is_array($list) )
        $list = preg_split(\'/[\\s,]+/\', $list);

    return array_unique(array_map(\'absint\', $list));
}
我们可以看到,它还返回唯一的数组值。

请注意absint() 在core中定义为abs( intval() ) 在最大输出intval() 根据PHP文档,适用于32位和64位系统。

SO网友:Gareth Gillman

get\\u posts在“variable”中没有post\\u,即在wp\\u查询中,在get\\u posts(或get\\u页面)中,您需要使用include,例如。

$news  = get_posts(
 array(
  \'post_type\' => \'post\',
  \'include\' => $newspostids,
 )
);

https://codex.wordpress.org/Function_Reference/get_posts