我的客户要求我添加一个他们可以在网址中输入的自定义字段。帖子本身是一个自定义插件自定义帖子类型,这是我对此部分的代码:
register_post_type( 'storylist',
array(
'labels' => $labels,
'public' => false,
'exclude_from_search' => true,
'publicly_queryable' => false,
'show_ui' => true,
'supports' => array('title'),
)
);
add_filter( 'rwmb_meta_boxes', 'c_register_meta_boxes' );
}
function c_register_meta_boxes( $boxes ){
$prefix = 'c_rwmb_';
$boxes[] = array(
'id' => 'view',
'title' => __('View Link', 'c_rwmb' ),
'post_types' => array('storylist'),
'context' => 'normal',
'priority' => 'high',
'fields' => array(
array(
'name' => __('View URL', 'c_rwmb' ),
'id' => $prefix . 'view_url',
'type' => 'text',
'size' => 60,
'clone' => false
),
)
);
return $meta_boxes;
}
现在的问题是,当我去帖子时,我没有看到自定义元字段甚至出现,是否有一些我缺少的东西?
答案 0 :(得分:0)
自定义帖子类型(“故事列表”)来自插件吗?然后您不需要再次注册自定义帖子。您只需要为此帖子类型添加元字段,并在更新帖子时保存其值。一旦我有使用自定义字段启用/禁用侧边栏的经验。我分享了我的代码。希望这会对你有所帮助。
<?php
add_action('admin_init','add_metabox_post_sidebar');
add_action('save_post','save_metabox_post_sidebar');
/*
* Funtion to add a meta box to enable/disable the posts.
*/
function add_metabox_post_sidebar()
{
add_meta_box("Enable Sidebar", "Enable Sidebar", "enable_sidebar_posts", "post", "side", "high");
}
function enable_sidebar_posts(){
global $post;
$check=get_post_custom($post->ID );
$checked_value = isset( $check['post_sidebar'] ) ? esc_attr( $check['post_sidebar'][0] ) : 'no';
?>
<label for="post_sidebar">Enable Sidebar:</label>
<input type="checkbox" name="post_sidebar" id="post_sidebar" <?php if($checked_value=="yes"){echo "checked=checked"; } ?> >
<p><em>( Check to enable sidebar. )</em></p>
<?php
}
/*
* Save the Enable/Disable sidebar meta box value
*/
function save_metabox_post_sidebar($post_id)
{
// Bail if we're doing an auto save
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
// if our current user can't edit this post, bail
if( !current_user_can( 'edit_post' ) ) return;
$checked_value = isset( $_POST['post_sidebar'] ) ? 'yes' : 'no';
update_post_meta( $post_id, 'post_sidebar', $checked_value );
}
?>
在这里,我为帖子类型“发布”添加了一个名为“post_sidebar”的自定义字段,您可以更改自己的字段并将此行add_meta_box("Enable Sidebar", "Enable Sidebar", "enable_sidebar_posts", "post", "side", "high");
中的帖子类型从“发布”更改为“故事列表”。
答案 1 :(得分:0)
仅适用于需要通过MetaBox
添加plugin
字段的人,因为问题是:
如何将自定义字段添加到WordPress插件
function gffgfg_add_boxes( $meta_boxes ) {
$prefix = 'some prefix';
$meta_boxes[] = array(
//metabox array
);
return $meta_boxes;
}
add_filter( 'rwmb_meta_boxes', 'gffgfg_add_boxes', 999 ); // 999