例如,在php中,您可以使用每行读取一个文件fopen("inputfile.txt");
但这会将所有行放在一个数组中,当文件非常大时会导致内存错误,另一种方法是fopen("inputfile.txt", "r");
和fgets();
您可以从磁盘每行读取一个文件,而无需将所有文件加载到内存中。
我想知道Wp query是否有类似的功能,可以在不等待达到内存限制的情况下“缓慢”搜索数据库,即使查询速度较慢。
以下是查询:
$arr = array();
$args = array(
\'post_type\' => \'post\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'-1\',
);
$query = new WP_Query($args);
if($query->have_posts()):
while ($query->have_posts()) : $query->the_post();
if(get_post_meta( get_the_ID(),\'slider_postition\',true )!=\'None\') {
$pos = get_field(\'slider_postition\', get_the_ID());
$arr[$pos-1] = get_the_ID();
}
endwhile;
endif;
for($i = 0;$i<15;$i++) {
if($arr[$i] > 0) {
//output
}
}
最合适的回答,由SO网友:Nathan Johnson 整理而成
似乎您正在尝试获取最新的15篇文章,其中meta键不等于“None”。
您可以使用meta_query
参数
$args = [
\'post_type\' => \'post\',
\'orderby\' => \'date\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'15\',
\'meta_query\' => [
[
\'key\' => \'slider_position\',
\'value\' => [ \'None\' ],
\'compare\' => \'!=\',
],
],
];
$query = new WP_Query( $args );