[已解决->请参阅此问题的最后一条评论]
在自定义post类型CPT\\U A中,我通过自定义metabox表单字段保存first\\u name和last\\u name(它们不是分类法):
update_post_meta( $post_id, \'first_name\', esc_attr( $_POST[\'first_name\'] ) )
update_post_meta( $post_id, \'last_name\', esc_attr( $_POST[\'last_name\'] ) )
在数据库中,它如下所示:
post_id, meta_key, meta_value
186, first_name, John
186, last_name, Doe
323, first_name, Bill
323, last_name, Jones
在自定义帖子类型CPT\\U B中,我试图创建一个下拉列表,该下拉列表由CPT\\U a=>first\\u name和last\\u name填充。
如何循环查看名字和姓氏?
在Gareth Gillman的帖子的帮助下,我移除了foreach循环,移动了<option>
进入while循环并将get\\u the\\u id()更改为$query1->post->id。
这是可行的解决方案。如果有更雄辩的方式,请评论。
<select name="mailing_name" id="mailing_name">
<?php
$select_array = array();
$args = array (
\'post_type\' => \'fooBar\',
);
$query1 = new WP_Query( $args );
while ( $query1->have_posts() ) {
$query1->the_post();
$first_name = get_post_meta( $query1->post->ID, \'first_name\', true);
$last_name = get_post_meta( $query1->post->ID, \'last_name\', true);
echo \'<option value="">\' . $first_name . \' \' . $last_name . \'</option>\';
}
wp_reset_postdata();
?>
</select>