我有一个函数可以返回一个数组os posts ID。
目前,每次我有疑问时,我都必须这样做:
$ids=agendados()
query\\u posts(数组(\'post\\u not\\u in\'=>$id);
是否有一种方法可以通过在标头上调用来维护数组。php和每次使用此数组a do a query\\u posts?
我认为在我的路上做这件事是一件充满疑问的事。。
谢谢你告诉我我的英语很差
我有一个函数可以返回一个数组os posts ID。
目前,每次我有疑问时,我都必须这样做:
$ids=agendados()
query\\u posts(数组(\'post\\u not\\u in\'=>$id);
是否有一种方法可以通过在标头上调用来维护数组。php和每次使用此数组a do a query\\u posts?
我认为在我的路上做这件事是一件充满疑问的事。。
谢谢你告诉我我的英语很差
我不喜欢为此使用类别,因为它们应该是语义术语。然而,我确实喜欢全局数组的想法。我不会直接创建新查询,而是通过将结果添加到全局数组并返回结果的函数对其进行过滤:
我将其添加到函数中。php:
function nt_globals($args){
global $used;
$defaults = array(
\'post__not_in\' => $used,
);
$query = wp_parse_args( $args, $defaults );
$queryObject = new WP_Query($query);
foreach ($queryObject->posts as $item):
$used[] = $item->ID;
endforeach;
return $queryObject;
}
然后,无论何时需要查询,我都会调用该函数:$queryObject = nt_globals(\'posts_per_page=1\');
while ($queryObject->have_posts()):
$queryObject->the_post();
the_title();
endwhile;
实际上,我会推荐一种不同的方法:
为这组帖子创建一个特殊类别(例如:“Not in Loop”)。那么,当你打电话的时候query_posts()
你可以exclude posts based on that category.
然而,如果你想坚持你原来的功能。。。将函数添加到wp_head
设置ID数组,然后在调用时将其作为全局变量引用query_posts()
:
function ignore_ids() {
$ignore_ids = agendados();
}
add_action(\'wp_head\', \'ignore_ids\');
然后使用:global $ignore_ids;
query_posts( array(\'post__not_in\' => $ignore_ids) );
我做错了什么
代码如下:
函数agendados(){
global $wpdb;
$ids = array();
$todaysDate = date(\'Y-m-d H:i:s\');
$hoje = strtotime($todaysDate);
$query = "SELECT post_date, ID from $wpdb->posts WHERE post_status=\'publish\'";
$posts = $wpdb->get_results($query);
if ($posts):
foreach ($posts as $post) {
$data_post = $post->post_date;
$str = strtotime($data_post);
if ($str < $hoje) {
$ids[] = $post->ID;
}
}
endif;
return $ids;
}然后:
全球$ids;
$args = array (
\'post__not_in\' => $ids,
\'showposts\' => 30,
\'order\' => ASC,
);
global $post;
$posts = get_posts($args);
if ($posts) {
foreach ($posts as $post) {
setup_postdata($post);
$data = get_the_date(\'Y-m-d\');
echo $data;echo \'<br/>\';
}
}
$ids数组未包含任何内容:/