Meta Box не отображается на странице администратора

Используя WordPress 3.7.1 и PHP 5.4.12, я пытаюсь добавить текстовое поле «Мета-поле» в свой пользовательский тип сообщения. Имя моего пользовательского типа сообщения - «новости», и это мой код:

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

}

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


person Behseini    schedule 16.11.2013    source источник


Ответы (1)


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

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

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

person Obmerk Kronen    schedule 16.11.2013
comment
Благодаря add_meta_boxes_{post_type} практике именования мои метабоксы действительно работают правильно! - person Auero; 15.02.2017