下面的代码是:
$post_args = array(
'post_title' => $title,
'post_type' => 'calendar', // my post type
'post_content' => $content,
'post_status' => 'publish',
'post_date' => date( 'Y-m-d H:i:s', time() ),
'post_author' => get_current_user_id(),
);
$ID = wp_insert_post($post_args);
文章创建,我可以检查它的WordPress管理和所有领域都确定。但是,查询这些帖子的页面没有显示任何帖子。它只开始显示在查询,如果我更新它的管理,。
我已经测试了很多方法,尝试将其创建为普通post,然后将其更改为自定义类型,删除了我函数的所有其他部分,只留下我发布的这一个,但到目前为止没有好的结果。
我甚至添加了一些根本不需要的新args,将args更改为以下内容:
$post_args = array(
'post_title' => $title,
'post_name' => $title,
'post_type' => 'calendar', // my post type
'post_content' => $content,
'post_excerpt' => $content,
'post_status' => 'publish',
'post_date' => date( 'Y-m-d H:i:s', time() ),
'post_author' => get_current_user_id(),
);
但没有成功。会是什么呢?
查询页面编码:
$args = array(
'num' => -1,
'user' => $clienteId,
'status' => array( 'producao', 'aguardando', 'ajuste', 'reprovado')
);
// a custom function I've built for my system, it requires and returns the document with the wp query args
$calendar = obter_query('manage', 'calendar', 'iniciar', $args);
if ($calendar->have_posts()) : while ($calendar->have_posts()) : $calendar->the_post();
require get_stylesheet_directory() . '/template-parts/manage/sessions/calendar.php';
查询参数代码:
$queryargs = array(
'post_type' => 'calendar',
'order' => 'ASC',
'posts_per_page' => $args['num'],
'post_status' => array(
'publish',
'future'
),
// ACF custom meta fields
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'client',
'value' => $args['user'],
'compare' => '=',
),
array(
'key' => 'status',
'value' => $args['status'],
'compare' => 'IN',
),
),
);
obter_query()函数代码
function obter_query($local, $file, $action, $args = null){
require get_stylesheet_directory() . '/inc/querys/' . $local . '/' . $file . '.php';
// If action == 'iniciar', it creates the WP_Query()
if ($action == 'iniciar'){
return new WP_Query($queryargs);
}
// else, only return the args
return $queryargs;
}
只是提醒你们,当我在WordPress管理员上发布新日历时,查询通常会显示它。它还显示我是否更新了在管理员上创建的代码日历。
1条答案
按热度按时间tcomlyy61#
好吧,这是入殓。
一直以来的问题是我在创建帖子时没有设置ACF字段'status',并且**acf meta密钥'status'用于查询参数。**我发现当我删除该参数时,帖子开始显示。
我没有注意到我的代码没有设置状态,因为当我在wp admin上打开帖子时,状态在那里,定义,但发生了,因为这个字段有默认选项。因此,通过打开帖子和更新,acf设置了标准状态,并允许我的查询找到这篇帖子。
非常感谢所有评论并帮助我找到问题的人。
我会把创建帖子的代码的原始部分和缺失的部分放在这里:
负责程序化创建帖子的原始代码:
正如你所看到的,它缺少一个acf meta字段的更新。修复是通过将下面的代码添加到函数来实现的: