如何将自定义字段添加到WordPress插件

时间:2016-07-19 21:52:21

标签: php wordpress custom-post-type

我的客户要求我添加一个他们可以在网址中输入的自定义字段。帖子本身是一个自定义插件自定义帖子类型,这是我对此部分的代码:

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;
}

现在的问题是,当我去帖子时,我没有看到自定义元字段甚至出现,是否有一些我缺少的东西?

2 个答案:

答案 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