2016-07-19 10 views
0

URLに入力できるカスタムフィールドを追加するようにクライアントからリクエストされています。ポスト自体がこの部分のために私が持っているコードで、カスタムプラグインのカスタムポストタイプです:WordPress Pluginにカスタムフィールドを追加する方法

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

愚かな質問ですが、確かに - [Meta Box Plugin](https://wordpress.org/plugins/meta-box/)がインストールされていますか?私は 'rwmb_meta_boxes'がそれに特有だと確信しています。 – Hobo

+2

コードを見ると、 '$ meta_boxes'ではなく' $ boxes'を返さなければなりません。 – Hobo

+0

@Hoboあなたはまあまあです。ありがとう。 – MikeL5799

答えて

0

カスタム投稿タイプ( "storylist")はプラグインのものですか?その後、カスタム投稿を再度登録する必要はありません。このポストタイプのメタフィールドを追加し、ポストを更新する際にその値を保存するだけです。かつて、カスタムフィールドを使ってサイドバーを有効/無効にする経験がありました。私は自分のコードを共有しました。これがあなたを助けることを願っています。ここで

<?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); 


} 

?> 

私はあなたがあなた自身を変更し、「storylist」に「ポスト」からこの行add_meta_box("Enable Sidebar", "Enable Sidebar", "enable_sidebar_posts", "post", "side", "high");であなたのポストの種類を変更することができ、ポスト型の「ポスト」のための「post_sidebar」と呼ばれるカスタムフィールドを追加しました。

+0

ありがとう@パランニバラジャン。私はこれが助けになると思う、私はちょうどテキストフィールドとチェックボックスではないように変更する必要があります。 – MikeL5799

関連する問題