我可以使用此查询获取所有帖子。我想做的是添加自定义字段键和值,以便我可以将其与post对象一起传递。
$args = array(
'p' => 996,
'status' => 'publish',
'post_type' => 'ajde_events',
'tax_query' => array(
array(
'taxonomy' => 'event_type',
'field' => 'slug',
'terms' => 'cursed-warriors',
),
),
);
$singlePost = new WP_Query($args);
while ($singlePost->have_posts()) : $singlePost->the_post();
endwhile;
如果我查询此$ singlePost->帖子,我将得到以下结果
0: [,…]
0: {ID: 996, post_author: "1", post_date: "2019-11-13 11:15:09", post_date_gmt: "2019-11-13 11:15:09",…}
ID: 996
comment_count: "0"
comment_status: "open"
filter: "raw"
.....etc
I want to add something here
我想知道如何在其中添加一些键,例如
project_name:“某项目”
自定义字段可用于此。
如果您使用的是古腾堡(Gutenberg),则可以在帖子编辑器中的帖子选项下找到它们。单击右上角的三个点,选择选项,打开自定义字段,然后单击重新加载页面按钮。备份后,您将在编辑器底部看到自定义字段元框。
如果您使用的是经典格式,则自定义字段切换将在屏幕选项下。
看来您对如何从那里处理数据有很好的了解。您可以将get_post_meta与postID和添加的键一起使用,或者像上面所做的那样打印所有post meta。
我了解的是,您想在CPT中创建一个字段,然后希望在wp循环中传递其值。
首先注册一个metabox
这里您可以这样做
/**
* Register meta boxes.
*/
function nap_register_meta_boxes() {
add_meta_box('nap-1', __('NAP Details', 'nap'), 'nap_display_callback', 'nap_location');
add_meta_box('featured-nap-1', __('Featured NAP Location', 'featured-nap'), 'featured_nap_display_callback', 'nap_location');
}
add_action('add_meta_boxes', 'nap_register_meta_boxes');
/**
* Meta box display callback.
*
* @param WP_Post $post Current post object.
*/
function nap_display_callback($post) {
include plugin_dir_path(__FILE__) . '/nap-address-form-fields.php';
}
然后在nap-address-form-fields.php中向其添加字段
<div class="nap_box">
<p class="meta-options nap_field">
<label for="project_name">Project Name</label>
<input id="project_name" value="<?php echo esc_attr(get_post_meta(get_the_ID(), 'project_name', true)); ?>" type="text" name="project_name">
</p>
</div>
然后是您问题的主要答案,这是将其传递给查询的方法
$args = array(
'p' => 996,
'status' => 'publish',
'post_type' => 'ajde_events',
'meta_key' => 'project_name',
'meta_value' => 'some project',
'tax_query' => array(
array(
'taxonomy' => 'event_type',
'field' => 'slug',
'terms' => 'cursed-warriors',
),
),
);