2013-11-16 3 views
0

Использование WordPress 3.7.1 и PHP 5.4.12 Я пытаюсь добавить текстовое поле Meta box в свой пользовательский тип сообщения. Заданное имя Сообщение Тип является «Новости» и это мой код:Meta Box Не отображается в Admin Страница

<?php 
/* Custom Meta Boxex */ 
add_action('add_meta_boxes', 'my_cmbox_add'); 
add_action('save_post', 'save_options'); 
function my_cmbox_add() 
{ 
    add_meta_box(
     "prodInfo-meta", 
     "News Source ", 
     "news_source", 
     "news", 
     "normal", 
     "low" 
    ); 
} 
function news_source() 
{ 
    global $post; 
    $custom = get_post_custom($post->ID); 
    $source = $custom['source'][0]; 

?> 
<table> 
<tr> 
    <td><?php echo '<label>News Source :</label>'; ?></td> 
    <td><?php echo '<input name="source" value="'. $source . '" style="width:250px;" />'; ?></td> 
</tr> 
</table> 
<?php 
} 
function save_options() 
{ 
    global $post; 
    if (!isset($_POST['source']) || $post->post_type != 'news') 
    { 
     return $post; 
    } 
    update_post_meta($post->ID, "source", $_POST['source']); 

} 

Я не получаю ошибку, но, как я сказал, ничего не появляется на странице. Не могли бы вы сообщить мне, что я здесь делаю неправильно?

ответ

1

Попробуйте передать параметры.

function my_cmbox_add()($post_type, $post); 

Вы также можете попробовать add_meta_boxes_{post_type} для лучшей практики.

+1

Благодаря методу именования 'add_meta_boxes_ {post_type}, на самом деле я получил свои мета-поля для правильной работы! – Auero

Смежные вопросы