我正在尝试获取所有帖子的列表post_type
“”staff“以及分配给此的自定义字段post_type
. 自定义字段是在ACF的帮助下创建的。
我两种都试过了:
$query = new WP_Query( array (
\'post_type\' => \'staff\',
\'post_status\' => \'publish\',
\'posts_per_page\' => - 1,
) );
$staff = $query->get_posts();
以及
$args = array (
\'post_type\' => \'staff\',
\'post_status\' => \'publish\',
\'posts_per_page\' => - 1,
);
$staff = get_posts( $args );
它返回帖子列表,但不列出其自定义字段。
获取所有带有相应自定义字段的帖子名称的最佳性能方式是什么?我已经找了好几个小时了,但越来越困惑。。。
SO网友:jgraup
根据我的理解,元信息位于不同的db表中。您需要做的是循环浏览每个帖子,并使用get_fields()
.
下面是一个查询示例,用于查找特定帖子的所有字段。
$rows = $wpdb->get_results($wpdb->prepare(
"SELECT option_name, option_value FROM $wpdb->options WHERE option_name LIKE %s OR option_name LIKE %s",
$post_id . \'_%\' ,
\'_\' . $post_id . \'_%\'
), ARRAY_A);
if( !empty($rows) ) {
foreach( $rows as $row ) {
$meta[ $row[\'option_name\'] ][] = $row[\'option_value\'];
}
}
SQL wiz可能能够将两者合并,这将非常好,但在此之前,请坚持
get_fields
.