如何在 metabox 中列出自定义类型 post?
How to list custom type post in metabox?
我在 Wordpress 中创建了 2 个自定义类型 post。现在我要在其中一个中创建自定义元数据框到 select posts 来自第二个自定义类型 post 并将其显示在前面。我找不到解决这个问题的方法,我试过查询 post 但没有显示任何内容。
请检查代码以创建名为公司地址的 Metabox,例如卖家自定义 post 类型。
Meta box company address for seller custom post 添加类型:
/**
* Meta box company address for seller custom post type added
*/
function wdbs_add_seller_metaboxes() {
add_meta_box(
'wdbs_seller_company_address',
'Company Address',
'wdbs_seller_company_address',
'seller',
'normal',
'default'
);
}
add_action( 'add_meta_boxes', 'wdbs_add_seller_metaboxes' );
元框字段公司地址html:
/**
* Meta box field company address html
*/
function wdbs_seller_company_address() {
global $post;
wp_nonce_field( basename( __FILE__ ), 'seller_fields' );
$company_address = get_post_meta( $post->ID, 'company_address', true );
echo '<textarea type="text" name="company_address" class="widefat" rows="6">' . esc_textarea( $company_address ) . '</textarea>';
}
保存卖家元字段:
/**
* SAVE SELLER METAFIELDS
* Saves values for company address meta field
*/
function wdbs_save_seller_meta( $post_id, $post ) {
// Return if the user doesn't have edit permissions.
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return $post_id;
}
if ( ! isset( $_POST['company_address'] ) || ! wp_verify_nonce( $_POST['seller_fields'], basename(__FILE__) ) ) {
return $post_id;
}
$seller_meta['company_address'] = esc_textarea( $_POST['company_address'] );
foreach ( $seller_meta as $key => $value ) :
if ( 'revision' === $post->post_type ) {
return;
}
if ( get_post_meta( $post_id, $key, false ) ) {
update_post_meta( $post_id, $key, $value );
} else {
add_post_meta( $post_id, $key, $value);
}
if ( ! $value ) {
delete_post_meta( $post_id, $key );
}
endforeach;
}
add_action( 'save_post', 'wdbs_save_seller_meta', 1, 2 );
我在 Wordpress 中创建了 2 个自定义类型 post。现在我要在其中一个中创建自定义元数据框到 select posts 来自第二个自定义类型 post 并将其显示在前面。我找不到解决这个问题的方法,我试过查询 post 但没有显示任何内容。
请检查代码以创建名为公司地址的 Metabox,例如卖家自定义 post 类型。
Meta box company address for seller custom post 添加类型:
/**
* Meta box company address for seller custom post type added
*/
function wdbs_add_seller_metaboxes() {
add_meta_box(
'wdbs_seller_company_address',
'Company Address',
'wdbs_seller_company_address',
'seller',
'normal',
'default'
);
}
add_action( 'add_meta_boxes', 'wdbs_add_seller_metaboxes' );
元框字段公司地址html:
/**
* Meta box field company address html
*/
function wdbs_seller_company_address() {
global $post;
wp_nonce_field( basename( __FILE__ ), 'seller_fields' );
$company_address = get_post_meta( $post->ID, 'company_address', true );
echo '<textarea type="text" name="company_address" class="widefat" rows="6">' . esc_textarea( $company_address ) . '</textarea>';
}
保存卖家元字段:
/**
* SAVE SELLER METAFIELDS
* Saves values for company address meta field
*/
function wdbs_save_seller_meta( $post_id, $post ) {
// Return if the user doesn't have edit permissions.
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return $post_id;
}
if ( ! isset( $_POST['company_address'] ) || ! wp_verify_nonce( $_POST['seller_fields'], basename(__FILE__) ) ) {
return $post_id;
}
$seller_meta['company_address'] = esc_textarea( $_POST['company_address'] );
foreach ( $seller_meta as $key => $value ) :
if ( 'revision' === $post->post_type ) {
return;
}
if ( get_post_meta( $post_id, $key, false ) ) {
update_post_meta( $post_id, $key, $value );
} else {
add_post_meta( $post_id, $key, $value);
}
if ( ! $value ) {
delete_post_meta( $post_id, $key );
}
endforeach;
}
add_action( 'save_post', 'wdbs_save_seller_meta', 1, 2 );