在表单中添加一个允许选择machine
. 您可以使用get_posts
生成select
要素:
$args = [
\'posts_per_page\' => -1,
\'post_type\' => \'machine\'
];
$machines = get_posts( $args );
if( ! empty( $machines ) ){
echo \'<select name="_machine_id">\';
foreach( $machines as $machine ){
echo \'<option value="\' . $machine->ID . \'" >\' . get_the_title( $machine ) . \'</option>\';
}
echo \'</select>\';
}
将该值保存在post meta中
enquiry
在密钥下发布
_machine_id
.
将机器列添加到enquiry
发布类型列表屏幕,使用manage_$post_type_posts_columns
过滤器:
function wpd_enquiry_posts_columns( $columns ) {
$columns[\'machine\'] = \'Machine\';
return $columns;
}
add_filter( \'manage_enquiry_posts_columns\', \'wpd_enquiry_posts_columns\' );
接下来,使用
manage_$post_type_posts_custom_column
为每个帖子在该列中输出值的操作:
function wpd_enquiry_column( $column, $post_id ) {
if ( \'machine\' === $column ) {
// get the machine ID saved in meta
$machine_id = get_post_meta( $post_id, \'_machine_id\', true );
if( $machine_id ){
// get the machine post
$machine = get_post( $machine_id );
if( is_object( $machine ) ){
echo get_the_title( $machine );
}
} else {
echo \'none\';
}
}
}
add_action( \'manage_enquiry_posts_custom_column\', \'wpd_enquiry_column\', 10, 2 );
对于个人
enquiry
在编辑屏幕之后,您可以添加一个元框来显示机器。这里我们添加了一个元框:
function wpd_machine_meta_box() {
add_meta_box( \'machine-id\', \'Machine\', \'wpd_display_machine_meta_box\', \'enquiry\' );
}
add_action( \'add_meta_boxes\', \'wpd_machine_meta_box\' );
然后是元框的显示功能:
function wpd_display_machine_meta_box( $post ) {
$machine_id = get_post_meta( $post->ID, \'_machine_id\', true );
if( $machine_id ){
$machine = get_post( $machine_id );
if( is_object( $machine ) ){
echo get_the_title( $machine );
}
} else {
echo \'none\';
}
}
这里我们只是一个静态值的简单显示,您还可以在元框中生成一个表单字段,就像上面的第一个函数一样,并钩住
post_save
允许管理员更新该值。