我知道这段代码是错误的,但它是我努力实现的基础。
我正在通过PHP解析一个xml提要,并运行一个foreach循环,以从特定键获取一个值。
以下是我正在使用的代码片段:
$feed = file_get_contents("https://www.feedurl.com/xml"); // Feed URL
$xml = new SimpleXmlElement($feed);
$output = array();
foreach($xml->entry as $entry){
$attributes = $entry->id->attributes(URI_RSS);
$im = $entry->children(URI_RSS);
// Get item\'s ID
$id = $entry->id;
$attr = $id->attributes(\'im\', TRUE);
$output[] = $attr[\'id\'];
}
$testarray = "\'" . implode("\', \'", $output) . "\'"; // Place the \'output\' from the foreach into this formation: \'xxx\',\'xxx\',\'xxx\',etc
$lastarray = array($testarray);
$args = array(
\'post_type\' => $post_type,
\'post__in\' => $lastarray
);
$wp_query = new WP_Query( $args );
当我回显“$testarray”时,它会以我设置的方式正确显示:“xxx”、“xxx”、“xxx”等
但是,尝试将“$testarray”作为“post\\uu-in”的数组无法工作。我确信我的代码设置不正确,也不确定我将如何做到这一点。
“post\\uu-in”将分页,通过无限循环加载。
谢谢乔。
最合适的回答,由SO网友:Roc 整理而成
更新以了解我能够通过以下代码片段实现这一点:
供参考:
$jsonfeed = file_get_contents(\'http://www.jsonfeed.com\');
$results = json_decode($top100, true);
foreach($results[\'feed\'][\'entry\'] as $post){ // This is custom for my json
$post_ids[] = $entry[\'id\'][\'attributes\'][\'second_id\'];
}
var_dump($post_ids); // dump array
$args = array(
\'post_type\' => $post_type,
\'post__in\' => $post_ids,
\'ignore_sticky_posts\' => 1,
);
$wp_query = new WP_Query( $args );
if (have_posts()) :
usort($wp_query->posts, function($a, $b) use ($post_ids) { // Lists loop in order of the array -> http://pastebin.com/3vwiDSfb
return array_search($a->ID, $post_ids) - array_search($b->ID, $post_ids);
});
while(have_posts()) : the_post();
endwhile;
endif;
谢谢你的帮助。